From 102a3365543b64ca360727c332e458d9ddf30ea8 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 1 Sep 2022 16:38:24 +0000 Subject: [PATCH 001/228] Documentation updates --- README.md | 3 ++- install.sh | 23 ++++++++++++++++++----- setup.sh | 12 ------------ 3 files changed, 20 insertions(+), 18 deletions(-) delete mode 100644 setup.sh diff --git a/README.md b/README.md index e8f4d49..1e7840d 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,9 @@ At the core of this installer it does the following: - Partition the drive of your choice - Installs a base of NixOS (`configuration.nix`) -- Installs Plasma (`plasma.nix`) +- Installs a DE/WM of your choice (currently supporting GNOME and Plasma) - Installs needed packages (`programs.nix`) +- Installs needed packages for certain hardware nix files are from [this repo](https://gitlab.com/ahoneybun/nix-configs/) but that can be changed as needed. diff --git a/install.sh b/install.sh index 941181d..0446e22 100644 --- a/install.sh +++ b/install.sh @@ -1,4 +1,5 @@ -# Figure out how much RAM the system has an set a variable +# Figure out how much RAM the system has +# then sets it as a variable for hibernation support ramTotal=$(free -h | awk '/^Mem:/{print $2}'| awk -FG {'print$1'}) # Detect and list the drives. @@ -105,7 +106,12 @@ sudo mount $efiName /mnt/boot # Generate Nix configuration sudo nixos-generate-config --root /mnt -# Copy my nix configs over +# Copy my base nix configs over +# Change the URL to match where you are hosting your .nix file(s). + +echo "Default username and password are in the configuration.nix file" +echo "Password is hashed so it is not plaintext" + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ @@ -115,6 +121,9 @@ echo "1) Plasma" echo "2) GNOME" read desktopChoice +# Change the URL to match where you are hosting your DE/WM .nix file +# Update the second command to the file name that matches your DE/WM .nix file + if [ $desktopChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix @@ -131,14 +140,18 @@ echo "" echo "Which device are you installing to?" echo "1) Oryx Pro (oryp6)" echo "2) HP Omen (15-dh0015nr)" -read device +echo "0) None or N/A" +read deviceChoice -if [ $device = 1 ]; then +# Change the URL to match where you are hosting your system .nix file +# Update the second command to the file name that matches your system .nix file + +if [ $deviceChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/oryp6.nix > oryp6.nix; sudo mv -f oryp6.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix else -if [ $device = 2 ]; then +if [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix fi diff --git a/setup.sh b/setup.sh deleted file mode 100644 index 9ca3093..0000000 --- a/setup.sh +++ /dev/null @@ -1,12 +0,0 @@ -# Set user password -echo "----------" -echo "" -echo "Which is the username?" -read userName - -sudo passwd $userName - -# Create Directories -mkdir /home/$userName/Projects - -exit From b6a612519d871cb99b0e6b31a7f6b692025505c0 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Sat, 3 Sep 2022 01:02:02 +0000 Subject: [PATCH 002/228] Update install.sh --- install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 0446e22..3bde713 100644 --- a/install.sh +++ b/install.sh @@ -126,12 +126,12 @@ read desktopChoice if [ $desktopChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix else if [ $desktopChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix fi fi @@ -148,12 +148,12 @@ read deviceChoice if [ $deviceChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/oryp6.nix > oryp6.nix; sudo mv -f oryp6.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "10 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix else if [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix fi fi From df65ab97b2f1566549d4373b9ebe0ae9a70de55c Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 6 Sep 2022 00:16:09 +0000 Subject: [PATCH 003/228] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 1e7840d..921ac3c 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,12 @@ https://nixos.org/manual/nixos/stable/index.html#sec-installation-booting-networ curl https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh > install.sh; sh install.sh ``` +or + +``` +sh <(https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) +``` + The following will happen: - Clear partition table for `/dev/***`. From 2b91f8b7dfe1e45d8237bdcd58c58fcf8fd6f929 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 9 Sep 2022 15:43:51 +0000 Subject: [PATCH 004/228] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 921ac3c..ea603f5 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ curl https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh > install or ``` -sh <(https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) +sh <(curl -L https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) ``` The following will happen: From 33bac9a6b6bbc90bf31d4502270685039256f9e5 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 9 Sep 2022 16:27:27 +0000 Subject: [PATCH 005/228] ESP --- README.md | 2 +- install.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ea603f5..e29351e 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ The following will happen: - Clear partition table for `/dev/***`. - Creates a GPT partition table for `/dev/***`. -- Create a +512M EFI partiton at `/dev/***1`. +- Create a 1GB EFI partiton at `/dev/***1`. - Create a encrypted LVM at `/dev/***2`. - Create a swap partition in the LVM and sets it as the same size as the RAM for hibernation if requested. - Create a root partition in the LVM. diff --git a/install.sh b/install.sh index 3bde713..716dc97 100644 --- a/install.sh +++ b/install.sh @@ -17,10 +17,11 @@ echo g # Create new GPT partition table echo n # Create new partition (for EFI). echo # Set default partition number. echo # Set default first sector. -echo +512M # Set +512M as last sector. +echo +1G # Set +1G as last sector. echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. +echo # Set last sector. echo n # Create new partition (for swap). echo # Set default partition number. echo # Set default first sector. From 53ed09cae64629e1a77ba2c64fc647d35fa5eaa2 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 9 Sep 2022 17:13:07 +0000 Subject: [PATCH 006/228] No need to remove the file --- install.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/install.sh b/install.sh index 716dc97..b3dd4ca 100644 --- a/install.sh +++ b/install.sh @@ -164,6 +164,3 @@ sudo sed -i "s|/dev/disk/by-label/luks|$rootName|g" /mnt/etc/nixos/configuration # Install sudo nixos-install - -# Removed install script. -rm install.sh From 2c6cde2ef72e3cd3df874f549204e9b0fb71aad1 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 5 Dec 2022 19:51:10 +0000 Subject: [PATCH 007/228] Update install.sh --- install.sh | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/install.sh b/install.sh index b3dd4ca..e5d6ea2 100644 --- a/install.sh +++ b/install.sh @@ -14,10 +14,6 @@ read driveName ( echo g # Create new GPT partition table -echo n # Create new partition (for EFI). -echo # Set default partition number. -echo # Set default first sector. -echo +1G # Set +1G as last sector. echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. @@ -26,21 +22,13 @@ echo n # Create new partition (for swap). echo # Set default partition number. echo # Set default first sector. echo # Set default last sector (rest of the disk). -echo t # Change partition type. -echo 1 # Pick first partition. -echo 1 # Change first partition to EFI system. + echo w # write changes. ) | sudo fdisk $driveName -w always -W always # List the new partitions. lsblk -f -# Format the partitions : -echo "----------" -echo "" -echo "Which is the EFI partition?" -read efiName - echo "" echo "Which is the root partition?" read rootName @@ -49,10 +37,7 @@ echo "" echo "Do you want Hibernation?" echo "1) Yes" echo "2) No" -read hibState - -# Create EFI partition -sudo mkfs.fat -F32 -n EFI $efiName +read hibState # Encrypt the root partition sudo cryptsetup luksFormat -v -s 512 -h sha512 $rootName @@ -100,10 +85,6 @@ sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt sudo mkdir /mnt/home/ sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home -# Mount the EFI partition. -sudo mkdir /mnt/boot/ -sudo mount $efiName /mnt/boot - # Generate Nix configuration sudo nixos-generate-config --root /mnt @@ -113,7 +94,7 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/php.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" From 340e47060b2207fba8e62bbf18f7be49751760a5 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 5 Dec 2022 20:05:10 +0000 Subject: [PATCH 008/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index e5d6ea2..ab91067 100644 --- a/install.sh +++ b/install.sh @@ -17,7 +17,7 @@ echo g # Create new GPT partition table echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. -echo # Set last sector. +echo -8G # Set last sector. echo n # Create new partition (for swap). echo # Set default partition number. echo # Set default first sector. From 72c9ad36903272b53ba9eddcac0d5861d90bf10f Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 5 Dec 2022 20:08:26 +0000 Subject: [PATCH 009/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index ab91067..1941117 100644 --- a/install.sh +++ b/install.sh @@ -94,7 +94,7 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/php.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" From e01bc41ff58ef344983c2dd8e47802e4c8ced2ff Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 5 Dec 2022 20:10:00 +0000 Subject: [PATCH 010/228] Update install.sh --- install.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/install.sh b/install.sh index 1941117..0bcd3f3 100644 --- a/install.sh +++ b/install.sh @@ -17,10 +17,6 @@ echo g # Create new GPT partition table echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. -echo -8G # Set last sector. -echo n # Create new partition (for swap). -echo # Set default partition number. -echo # Set default first sector. echo # Set default last sector (rest of the disk). echo w # write changes. From bd1745d03c564c734e617de66cd0b74bf66d6374 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 5 Dec 2022 20:11:23 +0000 Subject: [PATCH 011/228] Update install.sh --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index 0bcd3f3..590f1b3 100644 --- a/install.sh +++ b/install.sh @@ -97,6 +97,7 @@ echo "" echo "Which Desktop Environment do you want?" echo "1) Plasma" echo "2) GNOME" +echo "0) None or N/A" read desktopChoice # Change the URL to match where you are hosting your DE/WM .nix file From a45782b7c8e96e60b27f09030aca218e735a28b9 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 5 Dec 2022 20:58:53 +0000 Subject: [PATCH 012/228] Update install.sh --- install.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/install.sh b/install.sh index 590f1b3..caac8d6 100644 --- a/install.sh +++ b/install.sh @@ -14,6 +14,10 @@ read driveName ( echo g # Create new GPT partition table +echo n # Create new partition (for EFI). +echo # Set default partition number. +echo # Set default first sector. +echo +1G # Set +1G as last sector. echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. @@ -25,6 +29,12 @@ echo w # write changes. # List the new partitions. lsblk -f +# Format the partitions : +echo "----------" +echo "" +echo "Which is the EFI partition?" +read efiName + echo "" echo "Which is the root partition?" read rootName @@ -35,6 +45,9 @@ echo "1) Yes" echo "2) No" read hibState +# Create EFI partition +sudo mkfs.fat -F32 -n EFI $efiName + # Encrypt the root partition sudo cryptsetup luksFormat -v -s 512 -h sha512 $rootName From 8850925b7ec5444c7eb83e2400c210939f6a7de1 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 5 Dec 2022 21:28:41 +0000 Subject: [PATCH 013/228] Update install.sh --- install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install.sh b/install.sh index caac8d6..c3b2090 100644 --- a/install.sh +++ b/install.sh @@ -94,6 +94,10 @@ sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt sudo mkdir /mnt/home/ sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home +# Mount the EFI partition. +sudo mkdir /mnt/boot/ +sudo mount $efiName /mnt/boot + # Generate Nix configuration sudo nixos-generate-config --root /mnt From 8bd99cc405ff8406a3d82e7058d4e68916d63790 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 6 Dec 2022 16:37:45 +0000 Subject: [PATCH 014/228] Update install.sh --- install.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index c3b2090..5a220b6 100644 --- a/install.sh +++ b/install.sh @@ -22,7 +22,9 @@ echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. echo # Set default last sector (rest of the disk). - +echo t # Change partition type. +echo 1 # Pick first partition. +echo 1 # Change first partition to EFI system. echo w # write changes. ) | sudo fdisk $driveName -w always -W always From d7f9fb191762429474753fbb6adc88db6ef27005 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 3 Jan 2023 20:45:33 +0000 Subject: [PATCH 015/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index b3dd4ca..d15acb4 100644 --- a/install.sh +++ b/install.sh @@ -21,7 +21,7 @@ echo +1G # Set +1G as last sector. echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. -echo # Set last sector. +echo -4G # Set last sector. echo n # Create new partition (for swap). echo # Set default partition number. echo # Set default first sector. From c220cd7a5483e0b6eda459556d953168542e038e Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 3 Jan 2023 20:52:06 +0000 Subject: [PATCH 016/228] Update install.sh --- install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install.sh b/install.sh index d15acb4..a2d23ef 100644 --- a/install.sh +++ b/install.sh @@ -29,6 +29,9 @@ echo # Set default last sector (rest of the disk). echo t # Change partition type. echo 1 # Pick first partition. echo 1 # Change first partition to EFI system. +echo t # Change partition type. +echo 1 # Pick last partition. +echo 19 # Change last partition to swap. echo w # write changes. ) | sudo fdisk $driveName -w always -W always From c5ffb0ed63e819446822578d76f92ae888154fcb Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 3 Jan 2023 21:06:34 +0000 Subject: [PATCH 017/228] Update install.sh --- install.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/install.sh b/install.sh index a2d23ef..d15acb4 100644 --- a/install.sh +++ b/install.sh @@ -29,9 +29,6 @@ echo # Set default last sector (rest of the disk). echo t # Change partition type. echo 1 # Pick first partition. echo 1 # Change first partition to EFI system. -echo t # Change partition type. -echo 1 # Pick last partition. -echo 19 # Change last partition to swap. echo w # write changes. ) | sudo fdisk $driveName -w always -W always From 362e9e706f81659d00fd9f90caefab183e57fc0d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 4 Jan 2023 00:57:51 +0000 Subject: [PATCH 018/228] Update install.sh --- install.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/install.sh b/install.sh index d15acb4..2e88b6a 100644 --- a/install.sh +++ b/install.sh @@ -21,11 +21,7 @@ echo +1G # Set +1G as last sector. echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. -echo -4G # Set last sector. -echo n # Create new partition (for swap). -echo # Set default partition number. -echo # Set default first sector. -echo # Set default last sector (rest of the disk). +echo # Set last sector. echo t # Change partition type. echo 1 # Pick first partition. echo 1 # Change first partition to EFI system. From 87649df8a230813992b083fa80fa5a0292f307da Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Sun, 8 Jan 2023 07:20:21 +0000 Subject: [PATCH 019/228] Add new directory --- Screenshots/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Screenshots/.gitkeep diff --git a/Screenshots/.gitkeep b/Screenshots/.gitkeep new file mode 100644 index 0000000..e69de29 From 1123ee169b2c6448ef960df946c9c1d16e4e8e79 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Sun, 8 Jan 2023 07:22:10 +0000 Subject: [PATCH 020/228] Upload New File --- .../Screenshot_from_2023-01-08_00-21-43.png | Bin 0 -> 227928 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Screenshots/Screenshot_from_2023-01-08_00-21-43.png diff --git a/Screenshots/Screenshot_from_2023-01-08_00-21-43.png b/Screenshots/Screenshot_from_2023-01-08_00-21-43.png new file mode 100644 index 0000000000000000000000000000000000000000..55a057005f4d897cf5020f0f96fddd6d059cc284 GIT binary patch literal 227928 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 XbXCu&pVd1AYVCQt`njxgN@xNAse{Yl literal 0 HcmV?d00001 From 8b86ef5e9da188f60e317dea51aba282fcb8d17f Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Sun, 8 Jan 2023 07:24:06 +0000 Subject: [PATCH 021/228] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index e29351e..768bd34 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,10 @@ The following will happen: - Create a root partition in the LVM. - Install systemd-boot. +## Screenshots + +![GNOME Installation](Screenshots/Screenshot_from_2023-01-08_00-21-43.png) + ## Roadmap - [ ] From bcc6965ca75d3f42b3263cdd2438b25a7f57d28f Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 11 Jan 2023 18:26:29 +0000 Subject: [PATCH 022/228] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 768bd34..4c83d07 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ Tested on the following drives: - SATA - NVMe +Tested on x86_64 machines. + This sets the hashedPassword to my own so you will need to update it to match your own as well as the username. I created the hash with this command: ``` From b795982d26bff20d38ec0b7b7a9dcb80ee70c6b4 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 12 Jan 2023 09:06:43 -0700 Subject: [PATCH 023/228] Fix order --- install.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 5a220b6..a2d86b2 100644 --- a/install.sh +++ b/install.sh @@ -13,7 +13,7 @@ echo "Which drive do we want to use for this installation?" read driveName ( -echo g # Create new GPT partition table +echo g # Create new GPT partition table. echo n # Create new partition (for EFI). echo # Set default partition number. echo # Set default first sector. @@ -21,9 +21,17 @@ echo +1G # Set +1G as last sector. echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. -echo # Set default last sector (rest of the disk). +echo -8G # Set -8G as the last sector. +echo n # Create new partiton (for Swap). +echo # Set default partiion number. +echo # Set default first sector. +echo # Set default last sector. echo t # Change partition type. echo 1 # Pick first partition. +echo 1 # Change to EFI System. +echo t # Change partition type. +echo 3 # Pick last partition. +echo 19 # change to Linux wwap. echo 1 # Change first partition to EFI system. echo w # write changes. ) | sudo fdisk $driveName -w always -W always From 5a5305f7507fb85c29a7c695c54ad917cbed9c04 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 12 Jan 2023 10:31:35 -0700 Subject: [PATCH 024/228] Update path with new filename --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index a2d86b2..406ac17 100644 --- a/install.sh +++ b/install.sh @@ -117,7 +117,7 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" From 18447da4d457b2c9a2e338211fa338972b4cb674 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 12 Jan 2023 23:42:10 +0000 Subject: [PATCH 025/228] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c83d07..c5bb006 100644 --- a/README.md +++ b/README.md @@ -68,4 +68,4 @@ The following will happen: # Possible Ideas -- [ ] +- [ ] Install nix-channels such as `nixos-hardware` and `home-manager` after install. From 5a68df458bc3981ff8f8e2d1f2229ced18bbb34d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 12 Jan 2023 23:48:09 +0000 Subject: [PATCH 026/228] Upload New File --- Screenshots/pinebook-pro_nixos.png | Bin 0 -> 173818 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Screenshots/pinebook-pro_nixos.png diff --git a/Screenshots/pinebook-pro_nixos.png b/Screenshots/pinebook-pro_nixos.png new file mode 100644 index 0000000000000000000000000000000000000000..b029355c92930284b06e2ab53108dbe3e978fa40 GIT binary patch literal 173818 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

o6JF)%D)tUjQ}(QqYS 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 z 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 literal 0 HcmV?d00001 From 089c621c8e1060a32f89dc03f045b5e3c9e91b4c Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 12 Jan 2023 23:48:54 +0000 Subject: [PATCH 027/228] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c5bb006..5188028 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ The following will happen: ## Screenshots -![GNOME Installation](Screenshots/Screenshot_from_2023-01-08_00-21-43.png) +![GNOME Installation](Screenshots/pinebook-pro_nixos.png) ## Roadmap From 7ba677837c6d1a920c56e00fb44c1c87b363b681 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Sun, 15 Jan 2023 14:57:34 +0000 Subject: [PATCH 028/228] Update install.sh --- install.sh | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/install.sh b/install.sh index 406ac17..78aefd5 100644 --- a/install.sh +++ b/install.sh @@ -13,7 +13,7 @@ echo "Which drive do we want to use for this installation?" read driveName ( -echo g # Create new GPT partition table. +echo g # Create new GPT partition table echo n # Create new partition (for EFI). echo # Set default partition number. echo # Set default first sector. @@ -21,17 +21,9 @@ echo +1G # Set +1G as last sector. echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. -echo -8G # Set -8G as the last sector. -echo n # Create new partiton (for Swap). -echo # Set default partiion number. -echo # Set default first sector. -echo # Set default last sector. +echo # Set last sector. echo t # Change partition type. echo 1 # Pick first partition. -echo 1 # Change to EFI System. -echo t # Change partition type. -echo 3 # Pick last partition. -echo 19 # change to Linux wwap. echo 1 # Change first partition to EFI system. echo w # write changes. ) | sudo fdisk $driveName -w always -W always From f84b30afd03c7b8a8805e27a38e87b9c253e3d27 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 16 Jan 2023 19:11:16 +0000 Subject: [PATCH 029/228] Update install.sh --- install.sh | 66 ++++++++++++++---------------------------------------- 1 file changed, 17 insertions(+), 49 deletions(-) diff --git a/install.sh b/install.sh index 78aefd5..4d65472 100644 --- a/install.sh +++ b/install.sh @@ -21,10 +21,13 @@ echo +1G # Set +1G as last sector. echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. -echo # Set last sector. +echo -4G # Set last sector. echo t # Change partition type. echo 1 # Pick first partition. echo 1 # Change first partition to EFI system. +echo t # Change partition type. +echo 3 # Pick the last partition. +echo 19 # Change last partition to Swap. echo w # write changes. ) | sudo fdisk $driveName -w always -W always @@ -42,60 +45,23 @@ echo "Which is the root partition?" read rootName echo "" -echo "Do you want Hibernation?" -echo "1) Yes" -echo "2) No" -read hibState +echo "Which is the swap partition?" +read swapName # Create EFI partition sudo mkfs.fat -F32 -n EFI $efiName -# Encrypt the root partition -sudo cryptsetup luksFormat -v -s 512 -h sha512 $rootName - -# Open the encrypted root partition -sudo cryptsetup luksOpen $rootName crypt-root - -sudo pvcreate /dev/mapper/crypt-root -sudo vgcreate lvm /dev/mapper/crypt-root - -if [ $hibState = 1 ]; then - sudo lvcreate -L "$ramTotal"G -n swap lvm - -else - -if [ $hibState = 2 ]; then - sudo lvcreate -L 4G -n swap lvm - -fi - -fi - -sudo lvcreate -l '100%FREE' -n root lvm - -# sudo btrfs filesystem label $rootName luks -# sudo cryptsetup config $rootName --label luks - -sudo mkswap /dev/lvm/swap # swap partition -sudo mkfs.btrfs -L root /dev/lvm/root # /root partition +sudo mkswap $swapName # swap partition +sudo mkfs.ext4 $rootName # /root partition +sudo e2label $rootName NixOS # 0. Mount the filesystems. -sudo swapon /dev/lvm/swap -sudo mount /dev/lvm/root /mnt - -# Create Subvolumes -sudo btrfs subvolume create /mnt/@ -sudo btrfs subvolume create /mnt/@home +sudo swapon $swapName +sudo mount $rootName /mnt # Unmount root sudo umount /mnt -# Mount the subvolumes. -sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt - -sudo mkdir /mnt/home/ -sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home - # Mount the EFI partition. sudo mkdir /mnt/boot/ sudo mount $efiName /mnt/boot @@ -109,7 +75,7 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" @@ -138,6 +104,7 @@ echo "" echo "Which device are you installing to?" echo "1) Oryx Pro (oryp6)" echo "2) HP Omen (15-dh0015nr)" +echo "3) Pinebook Pro" echo "0) None or N/A" read deviceChoice @@ -152,12 +119,13 @@ else if [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix +else + +if [ $deviceChoice = 3 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ fi fi -# Replace LUKS device with correct partition -sudo sed -i "s|/dev/disk/by-label/luks|$rootName|g" /mnt/etc/nixos/configuration.nix - # Install sudo nixos-install From 0b4e2b1129f900ce5a8cee15453d567053663ca9 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 16 Jan 2023 19:44:34 +0000 Subject: [PATCH 030/228] Update install.sh --- install.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/install.sh b/install.sh index 4d65472..bfdc52e 100644 --- a/install.sh +++ b/install.sh @@ -82,6 +82,7 @@ echo "" echo "Which Desktop Environment do you want?" echo "1) Plasma" echo "2) GNOME" +echo "3) Pantheon" echo "0) None or N/A" read desktopChoice @@ -96,6 +97,13 @@ else if [ $desktopChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix +else + +if [ $desktopChoice = 3 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/pantheon.nix > pantheon.nix; sudo mv -f pantheon.nix /mnt/etc/nixos/ + sudo sed -i "10 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix +else + fi fi From b6c7ca713cfe70a1c6816c5db4745bfe8621915d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 16 Jan 2023 19:57:59 +0000 Subject: [PATCH 031/228] Upload New File --- Screenshots/nixos-pantheon.png | Bin 0 -> 109617 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Screenshots/nixos-pantheon.png diff --git a/Screenshots/nixos-pantheon.png b/Screenshots/nixos-pantheon.png new file mode 100644 index 0000000000000000000000000000000000000000..dfb7ae7bc9363f055d15b2aa8719b787cf8e97b0 GIT binary patch literal 109617 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 Mh0nwpw>=Q{O!`})3pD*{sXL<#KkCuvV!y=8H6 zad~n~R9@b{w)Su6bUSYG_gVkVH!(7^8B~AExpet*W@hHY$Nl!80{Qms`<2hzMXot_c1(Qq z=+QktP|99%TcWM-@V|4Q!uygOD77znezfAl`58@ox5T3j0W3E zrgIN&A9#9f#hOERe(@gboE&RcT2f-N|IbtX$o+M;*5&V5n2dSEbs`REuixWTTwMI& z#>2zy#;K=7?o~dY>o@oC(;~y#UnOq+a=ni&rc9ag;iz~#%lGa5eSOdV{eGW*q(d-b z+R^X#>(3wSmA0(^SL5=RU(%>$W$^MzlO{RU*4p0Qo}d2x-Ce=shd1hU3o5%6T#qfE zICbjL)B5{+&Oh(AxOep*neoQf zZ1LIV`F$4qJ=WjfQ~4P*@>T!)_I(3i<0sFhPySqg&2G-^{QYw?FE5)oYnB(t(rvkq zcfa4qeN6ZCqxk<{!V^ZChh z=JecufBgOT;IJ^a#6-pP^Yh-WQ~a{)yxs4f=kx35UAh!>>h$Sq>$!Q?FFxPBwyBA! zsJQs&+x+_O+}pNumO`7kC(e3<^3lu4w#NURl@`oF2H(XV?})uo{``T8dSdMlPKIy7 z{0~)BliuCp?(MZGzu)-(BKwAW@m+<>Rz+Vrar*S)6)QBBJgD9|S>1nA-rZe(-)*z6 z>HPZs{`@3WZv)@SO-)Q`XJ;LqWtzM&2OH|~l-x!9ijXF9}+5Ncu}{~c^9AMQ&kOt8IM&wM?k;=F zH9LCAb$uS8*4FO6xY+%BK^Z8^ zhcAx=XIAWjLd8krcb~AvLgKVe49!mc7C~(zrVhQA5oIL-yx_B zin`w3UK2C3P07dkKr0M7xDGu0WzN$KTK>qlFa6p1`Te=KV|ElY9_9 znYPttH*em&a{YR6SeV$E^G}O5R(?+V_WnNqftQz;uUxfCNm*GrBEi?gW5K$0dO!ZX ze)HAbcQU82+JxD&yN^G9c%YGaP5gelh!tkOlTS`opFDeZccO%hby*Luv{^uWynJBY zM9{F%wA9wz%a<-4`u6tr&iDI%d-(V)S+=b0#fyxzb8}8^NIbkjr#tz0-^Q}Hw;oKl zwK`=#X~*riX}`X_eDdT8!-o3*bzI!s&GGj*#N)SQ2+lUoS2H)C{^d)_xjB}H)92Tg z9ZmoL;9&EaS*G1TepI}A^-5`9*~4S`T69D6ALzNn&fZ)*TiC9pWXf3;|A&HWX$sJoS0)-tR%M^R5yHuwik5H-1BpA zammy5^D27acyy`Ly1+6k0qF@$y}lC5PZhTD9GW+)-B>~Nafs!$`(X)FWVl|gUbwKa ztBXrYO3G^P@nycVC5+Q}I5|1PkA$s>IOwgv_sFKy)9X5Z*4TkEQBiU6$y2A4l$D$R z{Hd9yAMY0&ES#B{X<};HDsq3-s#PC;)+|}NlyO7#_qyDVl z_iJ2@>`rfT`ej}J&*ty1uiYBk3;tU79bUbD->K;Qy{rcw9qq3CdNsWH=|9`vA&d!4ozP`Q%@ezj&B&%^XJo_oS3-h`@QNt|9-tba_pE<@v}1tHK(R%^2l0E0Zsja#DDy) ztNXH8-gQpA3LC$iOwf;gvtGQ&IMy%kUs`Iqb?a7#1h#Fr-#)wl|L^_E&u7g&{ru8C zJvk}(RNk}Z-JP8(s;VE4N#}ofHaq{){`&f~v$I4CWfIQJFkBP0wJSWncIvEIQfX&q z6dt|t>hHQ9%I=D#r5>G|N8Ed-oa`<9SD?2)uBf@Yi|fwzyYH`*e=IC9VYqgDe&X}q!~1^oNmTP6 z+xdBh^!5Z9Yr#vQm6bn5e>c0W+O%mBGdtge`Say@&llF?4m9pscKKT--g=xAIkMudiSI95huTU;9N+TrY+p;ru+?@H1CH>q>){`yG8+ z^zmwVd|+gxWKZmlg2qRWlDfLO8XOegKWvvzJ2~mY|7p?Fj_xRY9I-7YvY_qPGT+%1 z-)^RZeAM@N!tB|nyF|5{e&*iU@v&=ZmGvooAx=(C**ZBcF0L8I>3q{t1EZo&#sB*> z{ee%9ZuGVbH*R#Ce}4G+=fI#Kp-opxcl@#La(8#1JbCir+xh!t&*UF&*^J2J?j2h zm%ZWW%RfKQ*5=29W`~sd?**0JCQO@l?A6uPo}QjBuiOAN#j3i%{n!(|evoQ^?eDqU z=BmEj^<&4+q%}JwHy0Q`Tc&H_%%1$*|G@tj{TuB5usjZ_+`iq^mkWLUH|ds+i#!!`T1E^?)zEu`ybAlfBvwR>t&fj($d}6Umtz^k)^v{V8+T_#m~=meC}>J{gf**=toiZwKa+F@9p)OWzwnW z+}85s@%P^|EsND&zI-`jS?BS`oaauI@4hShOkVF^R8Q{j&zWznH8nLYq@QGcT(wI3 zyTSM0f5Xo-_7jUyHEelb89uVw#dzC8*^?N{mI?0 z0_xEhF+)3nDd4VsztK6?wAP7s3O{B|o+;Q7I`^og9nb$QHD_dZ8Zbl;5u{FUUXVIav)!6^{<^;s76l4Nj~;bM=)e2;c)xMQhX)CbrC(lL3<(b} z{#BBY`SqH(QWAdJRlpn71w|HoG|NEU{{=&jSo6l#A z72nqVeI36!=_nVUoQ*`_JW#967BXbKGcc1sK~V5z;IYoh5>rEOls`{6Kci`X0^7M4 zf)dM5HJjhjdvj8F<8q%Pa^?Epo^&>DTYkRf%hZVz4+i_&x>i+HE&rVHcm9|C|Np+P zu$gy3hL`!WN%K*e%O-|rz5l21NfHK>SyQXdY6=# z%&+<6x%=qJf{$Uz$NQdMbeHFqj4t0b?Vs%N#PjoPpFDpqEH3UI6C;y+ypLD&kBia1 z6)QB@cq9(=NE%C+WLywET~j_Ke#!Oq$`j}O&+6*#o@tQCG%Yo8mfGPqUhZQ$rysf7 z{}POhjC6Q#niVphXHwy_zwR%nBrGf}jF@)xNT;x6@iU&%($d89xwp-#zr9I(c4nrE zsw(Sw``TY$9vI%Q{Vx0S=g)(C+m`#xJanW}Soxg3(AxNE9LqOuoM>D94OCD($Sy1_ z{PDL==d_ZpZm;#b9m-GA?*#sP_~`7}vs0!_G044TVk5^d*WaFbdD+JN`*wTc@^4h6 ztE#A!RQ-GdDmD4l?|gmjvE%&rYipxHeWKIv>%Lppecyfm;G66LEuJ$AmTu&H-Q2%Hz4!P&ZT35PJ+HWDyyi0G zljnY^WoI|9k(pgcUf$o;^{DC6%XjXaxgKAC_RLJ<=JmFJJ{(pwepL5)_I-v86(5sU zty)#_WTHE`q(Am>SLtg|Z|O(>{~!FI3HI6bo<|u463TCIX5;ia){jc_i6fm zgVI+ab>BA67ZeqBb#-M09qfHr?>DzW#fOA<`+n!u*vbF@r2k*2X79?Co!8^4b#wNt zy>cbQ$k@1WXUz4GIb6@9e&63wsBD~eCgETc>yN*6UESR`ca>@j)csj2SM@^C$k^Dj z=n2RBz2D<@A3gu=)9W)|Uwf!L-#_cnA*ZzS^Uf}E?Ow5ZHMb_iJlpDNQ?r^WNUxzPaF`6C00&Lu#t( z>hSg8miE)9h0o4N`pvNr403s|@!#VSsJ#C5<)u!<28QE>7BxQ%T3cHMk1J1|II%Hv z*4%sht?&FeeDpA9dF`Q>FFu3jn2L-q>3{~0b_#+fyW0Nps=m=Tw$@statEwJykKe|P%ysgoy9UfdUNJ_GB3j`Xb8OHXtgDJc~dSG?JH9Ms9WU-vsV zfB7ZtwDa?PlarO>Yrlr(F9#JNm)_zY!rc3OI=A?HEy#$C+al07w~Nb@w#|u$*^c!} zy9WgYYvXokK6ta)MjyUaR85W zzO=o?44QwKGI?Ix|Cj0p-^G&GX|o*o|AN^f(z#&oN4+c8O3zoe@g9_%(H0rPV|w>; z`s(@rzAR5kOG~mC&qxK_dVC^ z5nd{BH->@j#+FRs+uQSx8}NYET^;7PKePM&KJV02)%-ml+1e669AM@Lx$D>0*Xw`C z|J$?2rmL$fBQGy+`+w8yYai~G-`^_j?d6s9@6XREQ>JVvc^R~7_3GQUdXRyK^4~wA z=Gs(FDt&z|Hu%5!ZjW{Sh(^*O7v z|`rAtDAd)EH@`}^~iVE>J|x6Stbd^S68r=37VTGi=kx;+wxO^JuwE?&5B;Pv|b z_g?-1NAQzpkTIQ0m$$HQ=;-*urGBb+@{ESbGZ@xgc(43ZUhjaUt<2^XEXDsB=UBTx zoF6XGbDRI{LCGndU!Pu&kT!ex#sApoqhq4wT+Bonx9U_WRr0*CBpyGxKY-!`3`lIz2Aw=BCu}T=TRu5}*ON)$8|p z`TFu2r=8(A_UZFykooWTewSOn|DV;yjT_I*u{2&%yT9)5j}M3WE1%CT@96I4&a^Lo z7c*(nq>9JA<`tjMn!mii-+pu2*)EHFtG52woqW76TkBuk+h1FD{r~sdvf_in`+dLl zLWTwRuPV+imiz(meH3Fa7(ee}4V?!o6RjP88qo z*8dWuX8ZWlN3Z)2dZha5uYAys_xC-xGgrawq~aOFE6ix-FJ^1IWl3wgaeaQ zy*KD|AD6G6^XE^ES>7Fv1090O9^T%`Ute8avSdlg?;la$_r1;Vf0%oF8|(CCdRkgZ z@9ykmh?oZLSW23jnmR0y`1fY>`At<{Up?6V==+G5@yzO9GD`W}C{ z8Xmtf;UH6=ynUT(&D~w4Z{IQIM2ZP$%(`~{I`f9)<9up9GY%ZJ?MG) z`T2SF$Is8rWoD{Y-d?x*AE;-1)08Kq z-rximvFi=8vOoL(c`9DACx)Q$UOVyEAjQK#rE{1=l%!m z*E3v~|IhPPygP60?{~ZM?$p1^%Fh1z?RNf5o64dixwB@^{#dnFMNN&ZyEQlc@x9{n zwnvU0{dmUse9M;KU)R^4?Gn|tsQ8fZo%ey%mFw3ZfBsqVe(!gS+FvCuxsxVM`tY;H z#MG4af54^n@%talJM{P0SLOxFmZ?QB?2FoS_1oLqnwpx4|Ni`(V_Dqx=+UEhk_i%P zEn80egG(0>@g(Z*j(SmX!HLn60xQK9zcD%YLhuG}Z-Ruy;mrnKr2^No$k&8>IWMsMF#`uf^~ zkC~a7Hs9|Q@A>oTw5;CEJCbjE`8!tB-`;j}b2`6q`ni;+r>0)HcFic|gg_gw^fB@H z8bKR9bMxt!E(IxUNH6g8?;lybI>r)y~?Q zech=1UCg<8wx?$rr|+uDJk+I94=OkWU*0z12F;kRGY3s9J!wnUjc=~MrSfLZLn*nJ+&Odo{(rM(8mG7I zi3gqai;>3fE$K@WMum5M+)?nOf;onIe(1D$$?(|9PjP2nyn6Kb@yhk<_di>D zXcuf<*{=R+O=5zA6W@Vng}-PluQ&SleBL385|-?vQ4DW1g*P6*EBz@d-{||B!$0?l zq^Fqqr5!7^bT2A0nyluVbYX#`j7`M^UTHIzJJ&Ypxb;XJj4i+G8Wtu7>Id1)Uw`}- zWO+l0IP=-6y>q$_fC4BKQhpU}YG>=(pME}Z?Y~9aFEbvnD3W2`@ca92J=O;-qKyWb_Kr$P0lU7!Kc1g! zc$Rj?Kg`+NTj4=jqQ6wXt&#Mdyq?L+H*lFd=f*CGO=9|2U&B^hE_lT}q5mZ7=_9{B z2=~m2s?q-=ll-5NXTH33x{8}KbK1kS9_8c8uk3?v-nU(;6dhwSR7dvkI&a;`> z%+9~5?(Z+Zx$Cb!pI`6i?aj^1#-pIGzaF-t$xlC)9s4d1JU!VrlA(`=SqdWLy3}+?mj#$D4NFROYQt6f30F)Lu3TkL z_B-cMkaH$~|KZMVZjo8Kn}h$hUxqiC=4MTwI<@t&1!#mZ{_m@B&|=IY*MD=@OuOdv z)AUsqbj8oRWlI;VPbvBIKM>RhiOOXAPjSsgEQZpA|jPfrQovlG9|yH!?NzTf}9Zuzmd zIETJB2G>Ft6{>16#e0G)_a{-{#J=~~oz48e-&t>X?sK^6yYq*ig}>ApAKWn$xWB$m z@Row6;4P7i-cOeo9=$Ix{U7_y58GJg?YwKTabCyo{c<{|nG!B9^SyGNz3BeNWOiXS zp8!zL0MuuJESKmgnG0IZa!I@AvAUuCf1#+F8_7i*)q9WsDdKkX%~gntYux#8wKuO1 z^W&P*>*uTI{^no4bEo9`>)uI8N}-{l3^%s*=H9;k_YNpUDk+&Wi#9rEih&loluQHl zL?_<6_=xqupDODsR}%YA9zE&NJj<%b*}af$S#tl`qdRLAzVW|5HqVy#&%br^&71zs zeY3E!CMcNcyn9-5|H;;t9~0IY85vc)TDjcA-@pIIm%hgv($C9%`uw@GyIWaLuWw`W z@uCk84r=#-<^lTcerYVL%>5rzz7?{n$s<2d&|=Cr(4x+X=fKM|U&iX{g4*WwU)*o7 zUfwA7Uo`tG+nZP17RsA8w5KP|vF_jbH#*~E>1oZwU-SPzI5)wz>#h7h28PEzqHejd zAHM$hQNhM1<55#%BPuE?IKLj$qnTmY%*rkH;QMb)J-xKo*Vcy1OrJH&D=ke;Z#wt- z>$hJPmO-7+2vfpj6wL8YvP)j8K|=Qk)?Fkd$4?pnBP-QVU}vkYIoT6pw& z?91|QMdvoq$XrlR(2Diz(|><^`{v%>-PR zzBSvR=10LYpP7fO-|xAcTiXS4kjM86bqA(HYO|elKsl`_xM)*b!u?|LW1T@gt3?{l z&b@!|-1{nv&3&q>svmD8_ixO)s?{fB>6DhHX8-SFzh(J5nfvwsYx9?1e|;!+zOcIA zhfCi2ty^|}K4&dyTUD}Mte(+tp3TW!rLT8w^#_OKOFQs@Ove^~$o$a5u;pES$G*>> zcYK8f^S0*6x8xTu5-N^WJob~@B6H=B`ISZ$JN~Qpv+Y{Dui@*rYK9w|mnHpwaPEQO zwRpQ@7NK$-Py3I{*@NniZ*vzLbbD>s+@4giH$uLS$@eUl$|j@H(As)-<>zM`Ykn5> z$=OO>{16-zq@k(#@WMi8hAGpg1;xdkJJ85%9m?S6;gRs~&(D;Ulz_;{lgsDVodWgt z3wGc2nQv#i!w0l~T2n`7$OP$EA8g&%na({GU!e3etCJhanTcx7(MZ&OPALC`}sU(M}gv_KkL8#vgm6*U!Li< zJy8O*a$-&FZnH)Iii?YPe!o|3=sWqwjfijW?w;na`@sC_)vF&5n)x%bvK~!zmrJ~| zB9Otv%DXs=Ab!frOdtSV}ydfbW7cN{7czEOCi;Iib#O<~E zap&-W3#Vt^_{&InJXnkryjI}4K!5tz^AqS zBO@c1-+FgrWAm$5Sq$Ia+&tXOZ^z+KQet9hX}Ra`x7!B~eQD#B{_*pC{kiA!>*eOK z%5>^RZwm+sDLMMuZazO`$DgRE=$h#5eKTgv@OvuX>9Owokxt>CuU48?_qN!cf3B{sXXaX)OT1nQ4MIjp0nh>-kd!ylep>X0x~-w1phCnQ7SIMXfgADLSFO@|RJY!2bLH_q*&l!FxVX4He0-j~ zxVX6H@7L?sXVvXi+G)4gz5kd251*XPjkV9;>FmERzvtft$KR;>9OVpMHE&eg2bP^LsCnzA;XWo4;p|&9>az*L0u1@w@&TvdhimcL)n#0C@c_ zWZZ8}n_JJO%Z;_Q%l(hdvlM;4tx-bV-!ZuOgTeD{jW@pgADU;#ntno|=W_ajXF-fN zEQDvA%<`YtPs`EfvF6iB^}A7jS{(|vFIm!(d3o8xj};#(Y(T?AwZFeT{946mQTxk8*}d<` z+p@_MCLGvN_}HqnuTxn4(*b6F0a@AJ>#vvY+b4JV&Axa|rJZ)lZaoTCRzgBncw?%ii_4VCO_ROO|rbk$Pb1p~qLOI3hWvW3mm$;tx7$ zpR4wqeR_QVF_}3%wpA?Wu6Rm36@BoN=hdqMH{Rp(49sG#|2xK>JbWqfRCGo)zfh{mSbm>yZFF$YZF|H+sjP%l`JM7ZCt&8=8w=OU-V&Ryt7dFG`GM%-HC3~Iso(1?<50SPdi$S` zepmVTe7VEh_2kx$y4$9n8?r^;*59AIx6WL4{qzH${S!sz9sQNBdbVmcXhq=X`TysD z7BsC|wJM_>QdHY^q(;hEm-QTMX5T)mars{M3u)C)KY#nS-iIkZvTk*NP=t%ix~pq{ z-K^Yvfde#f`Lbx`%9T^5OwoYs`citkDR*{TTibizKXvh&wl6-C@6Fd&wml^G#jaN!awjotjR{#H;|KD@| z`Qg`JAASD$p~7az-Mkn*ak+l=KaV#jN<>U+&7Aen{qu>$%O;GsdL;hsyLkBR--fmF zTU}jT^tf4=rc9r{x%zwFy(>3IcX&w)2HRqYg!} zY&;SIZw2zKIy*Zr@-005;$Oz=v|anari11;H|Ne?8N6JGhwbq3DJ<`PP62J(n%#Zf z`@z!Z9Cp7PwkYpZ1q}ieK0fAZ-81{#mzS4knq&rTIlLopm;J5s%`x#%7wk0s^7gj) z?QM>g_v4(iLHpXi7e%tf)ja!D7c6}2XVIBG%o5AF7Kw%BKl)lV)4E(wQc{uu)LeRV zYpZsQUCE08&_r|tBlC)tD?uxDK&`chMW;9YXs`d#9#$K-tE6*!{JT3a!9%3717$B!G={i!H>f3Md0SN#4uTYuZHBCV~hBI4rZ znfJHfEd!nBqN1i26dddv7bh2A^U-z3p2felgSLPAdvT(4CH$O+U9)b#Wn-6-;n~7h zkiURsLq~_p@ugX3n%fUNJ|;Kav*0Atn)2}EIl7%?DYkKWd3qZ+ZiKERl&kxZn3a|F z$EvjJU^DyY7mNErjo+EZ=?ou!|F!5l{CfRFWFPvO5E>Lz1qG%M-W4 zbrSzxTky3lOeyeR3ieuSV08OVdlRjz8oM0|KGw|na@+9SvHYfrYC!bu!v7x& zS>DfWo;;~1Fpd#49KSqq?>3pok5mhGZ&-d`)@uLl-jBI~EB-Ehb;0ttTEh8xZN@6B zKEjVIXN+D^QIUjYk&52*?n8&1%<}K~gocXFoH_H% zeEa#JqG-v+je-pQ#}9u#Z-2gBzV5{J`1;zb-|Xi1FP~p0b$XKlPcx_~*Z^8_U-;OK z!RK-vi}bDlWPaPM<;R{nP6CEU@3Ybt|Zc8GYNVu=eWqbDN^xhKGb)*q$HH@agmCXw}KJ zcJj?^yh*>my?vNmw_kqx>7$eV?KOCGb!*ED3#0v*@^>OHQ##mdBZZB681|GH1Ye)H{ob8~e; z3w`dE-|yAf$-b~9At*=)G~?gs&~WEYjF?``iBnUxEejv9fTqOn>?oA6sSs!|Ogm2bCRulRIQ-P7NnUpIWO<`naYx!@%u&%D&b(K1(q`399y>ET~X3OGdpp;+s?oMastlV?O z%Ins5baZ&+2gS#qH@{!geEaRO#~&YjtSHzSv*T`_&gnx>ixOw4Ez3-jaGU+SEpf~5 zjB9`XoXV{>sq%Dj+0}ge?Xvj&bt>xW-_M-2%g zY_}VKvGpuUig7(^VW)4gcDbjfp5DG?UjzN;S{L4^ojR34#pW|6S~$Ahxn zo&EjGw``fxZ}+QX#*7&scJj+u95~V`e3cNY_uK7{zgB&$+WVtsUxCq$O*%Gm{L3=i((iB7S?$ZTBQ?n45=%j~{f_Ua zN36`kO1;o?%~aci!eR&(^J5MMOonN^Z@RVCxpwU$$~3sO!E(OIuG5bT!_d{e_R+ z>VBS%7ZMhBj*X3VG29WOmz9;Jv`U(Xt#GH+_o6-hThpsJ-zuA6YLi_gB}|?fvzu3bX@jp>w-ZUcD(~ zYF)1G$HTDWvzOPrTXXD~+nv1f<+n>y{{Q>?=KlWqPoAWJ+8&^FVx7Y34JY2M@B8xP z_hRMn-T!1`?@wEAIcefw^H;w>qmp0P^rm<3tNjgXC|B)0a^%PsDb71{7|M3WtQ9(N z-&|`)D$|cs&)?=o2Z0LtUCs&u2c8xcK04AFH>NCe!Jfx zIl29Bu&mcD3te}S?SHgCbuT=!IWVScXX*2&R?8X#13B}|fBa6!`^mC+8Qb%12X7cJ z6Ns^qzb^l8_1)4g>(%Sl^<7;Z-u_)&H|ogC%gdu%vJ3wI{hk~twmN)$p7Eq2&>G~h zu%IBJsL4Aj-(EVW^7GZ}*XuPGO0N9)_;~wux4Cw;R=dmIcI|lEz{qS-^+ki7PllsE zq4vo{_aBet|8qDvJ2SWQ%cng$(s||T)xsYi5~XHcukTx6dm(E{y0@vRDGL*0*qR8z zy889*^X+P_Y+Zj`{qpwqbkIh{DTh^6RYgQZCQO?q=EqQ8Qt!G*{k}XeFK@W7Mf}@e z-@m+uElIVVe){Pm|M_+%rlzjeB0E{P#7^*WaZ%}#SugG*yeDqXlSYg3v{tv5X6lLA zS%#ndAM;3e%{3OTeiqWi{r;$=-I`E)x0|eI4!awEe{@Ibvkoy2W_Y~ko$cvhlA~4A&1@!?+*`MEhG;g z*mOX_b59*=<^EW;*Tl>$C^-0X8t=8gzrRnOIMFdJ zO^uyT=0(ZxXD_>rjf@O@h4j;Z^&X;;ppc6-Iy8`1HcP8_Hi!Fa}W@g{Sda1>Wgw*x;V#HXQ zB3^G#I6t$`woK#(-?8h}>enmczF(;AeIA#&kbLi*&09v12l z{?!(?@#o*VprD`+zyD5|Hm&ScZPb;XIEARuZh^GG-r>mw>Q!dMZsV25QXKI zy0W-9IlKA&^Z&j{2T$}Dt`?j>@yD~-`Jh21xqfwF$An8NJUy)r@Pm*vD(p`GqepEiL<OPu zv$IUsz6uEoEBf^%ljktU`lGjJels;S1+}MIxy2uStkBTVNVvKxlp*K#w%(VQmv1h4 z8B}8@pPHKb=Elaw!S4lI{y7{lIUDx+wwbqw#{|JN1bzt7(8@0Vau%ZFQkk3(pv=+B=&dt@w)V(wl1`o0gI z)Ak+*ZA1L@VsSrcqr=+(mqR^ktT$Q3Z2kFrndP3CgHD7GNiMoij`q*8I?Yswn zJmT>Cq%eo^ui?IP;h(;9MQ_i0>Tdr_aJk>yR~tP~e5{%h}nv-}fJ%q*2S2 zD?)!iBZYh>zfHu79zSn(y?AtL^lb>_4 zFg<*dzrXG;X!$>Av!(vNA4x}o9m=;aTc)$kLBWZyKb};d-!ggs|L_0*#sB*9lKDUjr*OrWi|(F2K0QS( zxuW9YpZov+=nn}GfBgOTRF-|MGcNKufCtv0#1i$>r%y9KnCLFYsb0_c@7?=<>w-_l zA1~bX7S!2m{QMlW>-DU(m|>W_NXGLC zXzT9v*H3popQo&-*yt`_J0-zD;_Zed(i-6M(YvSrK(YOCi{Os0_t>vras6GQv>FXy>YRzvj2bA|Ie?nli&aQ?)zPD_h^T&OL=)|DZ?Dw>S^I|m92B; z$h_P6Tn@A<-`SbD@9~8zS3u|GWoBi)+IB<53Ot;Z_x#B5#Pf5SCY!Ou+p`z7?;NAcVVo;e3k&eeOb1!~|eSkUnOUN!$^liPnv?;;H^?cp0fW3d7MCtx z{<*#Ww>eXz!}7Rh(3CI;dz5>5dM;eBpyBcH{^H}Z zo0e*reNE@z%lZF0KR-YJ_+!P1bLa9t@18wr|8_Re=;D&wH~IAsd3GHC^Ty!H)rURu z&L0l8Mrem8#;n@+?q6>(t3<=y{rS5&@AaM9-E{o1qM_kL)9h;(Zrr$$H#dL(-)a4J zzh1P>`TrZV&;GFdzX`sx%|IO%(BfavmWTR(Hml& z(V+6vlf3@-`~SV(U-AF%_m%6`si~^Ag06+RojhTlGpI@VGS1L$PF<}b*SUne`@9Xo z5k0oKLSNpqpXE$Ad|;k6clDc$9`CC&ZkHvB%;B86Gxo;i_s8UBGUk~d+wK~1yDT>E zwyTkmQN*4K!|dzpRPF8U7n!vsekia1UM|tbc%Z-jPjb%fWvfF2j>&6=M5|Gut|*-^0Y@Q)Zh@!e%_AHBG^ zm;tnN{@wO|yS&VI_cA+hP=SbDm(R>J z2A$jqI?oTZz2^{U9Pe14Ecbzl%I*ABQQ4rcwzcr15NISOW)nm9QLPt;^i5#{C(+V{(#H!Uw&h3~8XErj zd;h=f>FN5*7cE*8I+x$>2g7BPoqxaG25qFj^~JFAQwk`-Jnl8;U}1Xl?AfM*hfZPZ zVkFlYSAEH_`|$uYeGY0b?%cWa&-eQOX{GS6TP!|JT-i+dSV@m#x!IwIM&Sar(UOGLE%7>ZEV( zns~`LrgCrIm%mqT{$BjAvpg?A<@&Mhe?DfkUw9m``g*ee>=xTPo;#)NZk4RhzS&CL zpTl?Ekn4O>-5y~Ebv-`yViv#q6+OG!0zPeDA(8#~_`*}mI&CwR&Mk21xwJ{Id-IMR zJ3=pQU43JlY~2=hEWP!x(r<5XyQikAGJy6`{QLd>eFzWe?AFcc=Z`%t+F1PD@6;)! zdeF9e&{4eZeKL#*=jK>~jzuiL_cHSTH&D_6<6S}b_tpLcZHO&Syo$ey^Iri|PKMMfKuc9VgZ?f9b|uh_}6<= ziKn8utE72(Eg0nZ{kjDYHU9s+`kJWlqlMhU2QGpxH)uMj@cH?9bvwIxfBw{zy}$Q& z?^otVhvoYt-re6nAJkNzGv~}aFI_n=XjrNZl9^C>BSp2Bw90;s0V=iol}i#Bo4ljoblW4 z@Si^%$5t}=99R7Dz-dlm=3BLfXd}J0Ws+uH-iF)X?TJZ{k`SG0ZuBM3IN<<8pPVh| z+OQ8*dqMM~?sAn&?q;T1f$mmVvSdlYn;V7-Ti6O59T_t-GX>Qf-23HxQ&Uw{RaF@t z>Q9=M8e5JyEclWo$WeTbRT9Rx7&|&ntUaos#kQTh`dP@E$l#6YzDMR+nudfGt$WO; z7nWQzw}0}amfCQ!bGe!~>?QhZ^UYYA87w5XC*PmhI@v;Di@g!^?{hjGpWQ?5=~!CM zJT6z=vt-GVbyYtdGTz2sHZkO3W&mv&JuQDSc)4Hd!$YkVd*h^}rB|+8nHgGVt8@Ah zWc7t?!@s}3Cr_IOI%0D6E>Pm(xBHPWyZHOt+tVvQKfAcxUtZ^Q(yJ>g=UA8by?XVk z1G*X&RPUVV1=sbL_P%)Y!M7#SYlsqFE-Dm%^m^Y6c){k-3QYwGI0oiv?) zL&`}Zw_YjHd;h<#ujf4g+BsDHO$T&thPrw?XzY9YZQsa9$?R)uUQQ~G-%-%WZ~w<& zPhNg)tu440&XK2SXgKj;GyCJBol(Bxlc!H_KmYtOXw&4h)WDdSGq0|$R)!s)25Kpo z_f0HypLRJ=_4vyLUCeybUvF6>U-vIo_Bf|)fm76xqz%Xg@?1SZ(UYaR)LKAt%X}wFF&ph4QeH&OP9gT*Sn`)&UW~)Qa;}9 z!i|o?eKN)G9eaXV?+P_nzVM!7+-jk0T)?ItA1r@v!$J$qW`lm2=I*O+!&l`WSh22g z*@04*+h27~Cmrb!?2$I_`|_pa-`o5DdL14V^~9~8zO(rGq=^$552VkpJ+>}(_o1iG z?R=@<-rNMOh?+G^3beosRBP#dudqo;PdBdlQNZ9g&*tQ|+}ohz4JQ3idRc#MO=OR} zz1;TOXJ;Cx-`G=WJY6sL)ubQLU~qA9sWS2ft$PnljL|rLXCwRP&4(@i3UTN~HW+Jc ztUgz}isADCaf#>pF~#zJzXIN@oLune(Z20{l@GYrZ2#927*}}q`A$L5{=Orf!kW6e zM-6(+p6=Ya^UKT2pcdcU^82;ZKR!NgT=>X^K}bjlyqWpSW&fXd-`5@g_4V~k>vBEN z31i=ipPf;(vzvE4zJBiYxawZJ+Fujq&b^!ZvGmISA0Hn}n&-)Ahp&6`bb9=;LYZgh z=ig8L2wCY2itR5c-~@FsFtBy!|J{L$r?1*roc{QZnZ)BemEg(3URxvPJ9$0%-5a*O zZSr0?ahuwX~I-?Ey${)+;GTdL?aX>EoL?`QVfCg$w$ zo2|KQy;wZ7S5w8LEO6wUOlM$p_s-n#*@BlOB_%{x*(|j*Pdr0KF*KUGV7ff#*jhC1+*rsC3E0 z(F!b(dE@%IK{{QmwGH6}m`gr?Qt5-`}m+36`o7=SmvON4w zMO$LREVXH=iIHM@)3x{H*5%Do)0?gxv;FDfryHNmY>vviZGEk%Iu&%@&ZoaV!NOeM z&Ab@yFJaQR6@M!bRrvSY(~Ne7yDv_?zI*ZS4M>a9O7?Q^ljwgHTby4^owINyOZ`We zjOCgQJ8R94%~a~>t=SP4>)BpaC{aJjHm$!E8EZ&(_0=tVNLH5UG3diHK_!8@BH?bn`|YH8`uU%f|& z-6{2AT>tjPKlXVu2wMqh<>zp{-Ff$}&?79yKx)_xlA*yU>`_}l-T(#+03 zX@bD6WxA73fHrh}dUEo}@#CB8|NrYq?q2dAv?lNS@5-M~r>|VUKK)paq|K)j%Am!c zg3wyWeA@BHimIxrHq!m)pC5i(_82;O`p&PHA#di9tDxmk6W3k*GxJrE=G+^%UvzbL zc$9=(Pnh$E?eb&A9SM5hmUJ#G&C`!#I-sF<^vVcU*2=M z%^TBw6n9kEt+W3l9>cY@{FhqGY%}$#Ki9oq&Bfx}Kka1L=DG6BOpO<|ZH}*7XTC2l zAUyo|tE;OI|Lzvkee~t!<%hM04R-wh_j{vG_tn+m+r8$PnVGd+|M>US>h+)nD<&o; zTV};o{`v9o$KSeDt5?s2PNZmT^Y|rin8X6=(_AWl51QYctnRO-r`OjluJ0x?A5_wJ z+=*yQY!TiUZgr^Vp<>(bU)_R6Nkaqky{m!nKA{FB|2IeCM6&(S;8 z0+5!qv6AfXbviwhiY=Oj5-&KcnY#Kw+i zZ*Ex`@XUGmQljpI0?^g!Beh@uhokeS4Gnpy(lw zf4=nhou3(Q7%xvy;cbzSf40tsgRSsV+XEh-oZJ5=Cd(cd7yenIb@JrNl=Sq^ACJoi zM@3c54PRv1f85#0iAh+^N5Rx|>h}9})-l@>4l;qJQ=jB-PCnjen0ScAZ@yjcV~abr z-|x<`C{&8ED|p}lI>qsH{68mOUtasaFa1Gl+!riRSaiec)&3<*S^^ilfyQE_q@_=u zI<;uoGPOAZ?^eKyth0+d*Twwa{1~GJsHY6#!wAT8ynfhdz7Zg3Q(|_wq`n zii?X}dE{(n1TXj7m~@nD)#}xZ9@ytE=6(P6_BN=IvH!2!AgEVj(seEjjl zMs_&`ef|DLim2c{jD+;}y6KsB~!-qzke1nY_>b{Y)0R*R*mX?f?AQZPh1S^`PZc z&T+onw->hk$N}w?WNAK_UG2)`@L=ilMY2xX>+bK9c`KmOWwlG*y1M>~{l{}(TP{DX zIW6B`#sMw>m6Z0jrAC^Vn0#3O|JV8-HFkUA^bHLS*Dh=LR$((^S!ZhGeQVY&ZlELa zOXgpkxwx~pH}`vSSe2abEzk;Ss2QM*m6O4}Vz37w#1plJp!@>PToB@f?;+8*47REH?GJzT@?)t>wghBfB3SVq8xv5nffxlQpQsgH?g6JLP~!oN zcZN=#Hm&H<5l$~JuN7<89^IrPBqZeF?X7HVEWG}@^jm?Yv%z6_>Fm7PZ;{*b@1NV4 ze0-5CXp$LhNynF>Mu&#GyUU9|J@I5nN>29l@llcB2?`8!jEt0Y?~?&-Bww<0sjFqw zOFmF{#$$UCo2pRFqlp*%E*x92;=mc}j>12$FBop0ec=B8MR&JdYoBef&#LsUp-$|s zDF>U`lR;;K1jogln`c{nD1O2&rwxjntS zl0H2-$s=XbF>96-!=5;O&;qgpjm$YWH?>y3+u45Q$`uWFUGrI>-ieUtv7MhKezIC9 zU*go;!@fD6>Dm2n@#_j!N_~E?@LKOFy^@t-OdjV z3%jQJ_xSPS#gEPoq5!(0?#c7#@xc;(k3W399uEqf2M3!qwY3kw{yJ&)?9-4VFZ1{P zZ1bIMcJYEh*V~)v^HZ;{i%m&Qoj7I6k)6fQBlg$XitEK3c>ek0m&^Xikz#F$AO3tk z&s^~7iKkiK9SOU9Y@?zAUInw4ot&Z>eB#upL(e}KK03k)I=CP?S(zbk`|LS$WQ>fB z89~$Sx3}dkUb%ARVMI^n$urO_dyJmAar!wP^?F9VxIG>B-}Arcm$8@tT7tD_j}7QR zp(CBbiv`z}2ycF@rKF@}9-z?ivD7X??c9We)B9(u9r>wmpLFY=YgBHo?$V`8uUxwp z_xYvo<&-BUCVqK+y?=B1c_z@wp|{^YyBZ$Ba3iac5^SBWTap%}uF${{Q=J(RX-L>S@r)fvcbBA9!(b@z2-s|E2Qg&z>!N=j~qL;O)Gvw0wX6UCun%`3CNoI|Nrh3pSKk}is*lux8J%Ir5C&F z$OJ{_j?T`^(6Wz@j+%XS@0DszjhtgwyKA@86pfc#l^dABP0b~&(BTT7;UU&*>tdzn{i{4b&-TjItAgN#%rf?Mb9#Du!rp%V^l8PKH7pNKOjOp1 z*svh@`Tgzr@jL!5bZ!SV3m7-(bbC%#`v^L}c>j{xPbbxFemKPCi5w(eYe^w&<)>vpHM+gg{s zNqB#6@7rmt&5oeO0A5~)OnhtXniUiErL z&}y7UW_Ax>-`vgj)+b7Ym#Lde{*}^EQo5Kr3$%h_n_*X%zI=YhkrVnIULO2*KNLWx zTHe^um|$=sw*2nV6@iPbuC_n6xL)#Z)+{NeM$m4k1xuDJ@vZzE|Mu(K+van{7PA-r`hN6`HHWxG)Tf2XTin{ve z8_E3>r%buBbm7;Rm)jEzI#MG+g`#2dv4mN3f1k*iS7)iL%zWA8g_2pra&H($gP*{`ui&4XAbWbb9=y8#it^zK7RcMVmW% zd!IJ4%O$+Hu<-4)^wd)u#ij+Wh&m9=n@(Vq9P_C#=0)UDKwxi>a6&Y2?vnrGcv{M@4U zm&xHa-q#_Z-Xg{d1i`I$x8+J-Uhbd%^3u{DHFl>?ow~6x*?mXN<72(BH4PSg>i+Xm zZg0z-+l7>J_s^Jd;ZxP~b8`>B|K2`*LiV*kyVD{gCE5984!r(qRQBdZUVree=@U!c z!`h2O$}D=95*Um;_#o6@vf|~=zC+XUo`9DXIOZvR_1`1>Rv<5P-_w3~YZg!f5ER_m z89B|>*_rwOul4`C&Vx2M2nh=}L;6!iJ3l~M5#UkC8OtQ=B-$>%s{G8H@p;eQT<<9M zKo^&)-CbQ=pxKxjJNfeawdSBf8%f^Tvu1%78ng4sC`j;3nmxPPSGmDGy-&@|Y}?)Q zkuNLJS_ey}zq-C&zWh!hJLv4^*Vooo?2Qu=655bEyQ_<<>7at${Qfy}WP*Z&7t5|I zVMeO)K=oeL#x-knK<9>ROg^rmqqAhs9+}gdUfkbr4;mBu^5SB}-g_DCns;45)f~jr zAaY`yo}Jyi-S79!-u-@`^{s^-Q#2WMuDfLa^9sK-Yd<`7DJdz%9_}e)Ko(F^x?~FK zK?=Tn3fTa0%frW~2i_!8Qc~Kk0_l2mpPg;q|La#(*_#^|Q)}%$9ANGNok_K8msQ>W z-}lRR^}oEly!hLj$Zv0NUr#MW3|x5}2bn)HPqgNX_uz7Q{(ys<>WE$BOwsepDRmmp}jR?(X#~_h|RXT2EtSX4_Eo^i))yMKb=7O0y}ao^Hb@H{?+{eppu>IG0JNxKTW|r~JwLCRT0_AD@(;pPqtOu7rhwmf9rEnppeBy01C+wnbm@*^j2C zrW2=6KYnJW@%o+opxA}rmo~kiEhq0n1-(95F|#?$kB~Wj@a1fVw#LA~%AIkw%;zqI zaNH_bDfQ@2?ygfOP9%JMbaYMZ?rDGi{PAloe0Yczbj?9l)}u#9yFm+1ZwC9@9=*4> z+Op<{0Rw0?{w&jO&_>lCHFopre!VRC^yBCA`Ros#oSd9b+9#|EuBgh39R*KluK8<+^o!EAk;h0U~$WK^nnXexIziFK>F>kk}%$w;`~wl4V2T zujn~~FBxXE_a~+IW?v46H*(6X`X;OUPntQiGxv7Q&!^LuELq}mW!=7g^HNVwE4-b% zePhYXplQ0%*H#uaU|U0OZlhX?wA}k<+Lt`Y>i68sKZ#pREb)#ZJ=cFp?n<44DDF;Fy3jBb8x@$i3e z#5C97VBxmJ1PQkv|6P}5J}QFj12gnB{*$rp_NSeR5)8TXwr|f}xi=Zqg_~)oT|GZ; zHYmm4JDK6f!0&hLgne(~%!Mxc3k47O{V5N&m1ax(msub)NBRTn;*~2q4;^x9I+$=I zSiZdV2Kc;Ve)~TKs~>~UJNEYV_5E?tyvnjaOtKyX>l!sbJOd~*SzZTYPrTyHs^iWEiXU6XB&^pDQjxJob^aUPcP4$Gdd{f(20r4 zpa$yEqlTH6mY9`lX*;i1gtw8V-rjb0p>z9*vu9Nm6&Wv^fHJ?OrRChNy=&I2xw~>| zc2?GpKcCM>Zb)GK`}_OxO*%$KMg_a?Ub%jqdEt^A1BoM>bl7;Mj?6Gjj`}Mae|rBS z_CxloOkS_3^)4(dTq^{+2nkw#7bRzcI{qcrix+XJmvY3cV3_k^e@-k>moZbBXO`AXsnu{wX_Wyh){p{S_ z?&FUaZhU$oGvV{IvuEa5PChPIt#jx9EYs{m?=QCTN}o7+GV#`yOwfGu<>mgyIX5;G z{8sgzwnggV@7MAFr5Zp-2z`5Vlkc{BwzkXF5 zap|MUbc+WCJN-`odiebQ)xtR!nAJnltjjX8+qWG}2i>TnBEeJks+A?KYF+TxrNuG( zYb|dnp734rud{rSY}1wp;DPrE*mfE)c%NoQ41z#=&h13$y$sQga9c3E1 zJdhQTpv8=?)`;7jCq{RHbI0D0Q1~*%i+oFa*R0V2O$7x92SY6d+q`pW25*9(;KaB! zD^_$YTC^ym{o=7-UtcelZGsF{fUbVfeYwn&;rln!tm<1*$L7}BTSr|E&F;B(3pA9o zOWqaKq=MilX-mP5hw#8;o{;%jP%|2IQ`NxNTmGz^|j{f)$ogaE2myu z>~38DuSVx|($iB@Ma0Gb|9^A0x+L`J-VeXu8$XYken*jIQbDImql1!=;EL%DOl+z_ z`D@o+4ZB~yT6SMa#QlA{-&)qsE&O*ky`p)a{@D_4W1s@^H40*jV4v zQd7{)1zsyZzUzb8s(3`#UFd)lhvKm*Kke&VY*lLy9AGH1} z`PREBj2d;F?bo-;qg?em|zJjc^* zB-;+2nyL+29lvW`@xMQnW$*9#Mn_AZo~FBa$&!=4X+4+pAiIrO{AS&wA zv0mxS+}zY>XJ&$KWbEnTv618d{r&y(4-XF~{}gM5JJ>~J5`&l%hvBj-jm|4r%o)N? z-c6X5QExAC@7i10^Xrb@{rUO%&)fI^nLT@ZYn$v&-w?>2>pK@XAH071zqg=nk>uIW z<;F7eKZb;bxfK-|Nt@?^>W849Lzn&S!8ga;+gp8ecey^p>hSe$mrcsv+%U|D1#LTB z*e>^IalhT7ty`xaIpR|Hp;;buFyyLLt3Y@C%uJuRaOu+4ZgKs-tI;CRNL6eR2=riz z;7~j=<5FL!yIk~loyG)#w+|L-TYph$59E4%@b|{N`Te`@v~J7Re|2W(2ebCZ&?56N zM>`9d6`#c~mcMO19UF04AZF=**jj*h$97d4-deagV*7b#>!{wT_R^vp3;w@M{_wM1 z=YDuyogHZV!ff;WW!tuyJ^L<^%N5;z_~5G0)fzfFETC&wVt1Db@~|aax6L|c`~8k{ zVWDB(_Suh*_k-qX1vyyUV)pIWF~hZ6Y+G5?lYkz+;EPoeMR9yV>-MeSK=JytC*f0Tf0PwHZ z>)n4nF0rb7IyL;prc`cq|9L%CH9UtwE9pf$0sDd-gc>Lit)x-9O6bW|^~>F66UL<|@1Q=EiB}yLa!Jn3?fuXEJ@5zW-0_ z{eR!KgRW*|&ePY{R@T++1$6*GGjU6nFW+4C_0^2m@!N7FSy@@Z_riQUCJovU9u+0E z{S#k%GiXTk%9SHmRt8u8e!IQULgvZSr$_Jndvvt>=ab3)5&P?G=gyrAx|@UHM~xk5 z|8To}T}STiHSzoBeSLlXySLo5Y11ARSb#zYWWY?DN~6=$_4hxkT@$gf33PVTIqUZy zF1pJz7X0~9SYs#8EvD1)COjm>rM%qS)YQ~acK-XC=hi7{X`pR-arJ*oZRGq@v>s*r z?RWouvG0Ar-`A$~|7!mIy1w77um1k0i?8Ifs&$_0i-C6f`Pcsv1|5my>E+dR#NFnI z(0u2u@~`)=Z+xVG>s!T<;{is-#xGyJdR1=NkQ({s{{H%i`N?|IyO+H?iw`S;uH z6R+paohxHez`(KI*{1qi4(KqeoyE`H?v#U~3lvdK9D?>nOcirl>V9ti_|D1xSbn|z zn!mN@_gXLddsn*NXw9cb$Bgd$kjNFvH&-iN$oKZMKI4Yqpbgy5ll;A0EC1g3{Ctt# zwZ-}WZT4(lmZ%%sVypYu>nHR5MQJIG=lj2%6+E-3@fa z|KEn+d68jH%1o!9c1=uFls3!hP)PwTeB{>Oa{#oetW;#fy4O0fyQYBdpgwobj{$TH z&*$^@=eOnFUgS4hdaX^v@y7>Wf4y|?9$(Aky18@b?uc18>wm2y|EflzV_3D%7&-r)Uzqr`__ue${`S&_eTRQUh{bXx+^eE}n z>C?&cf-FS19u`=5`1&s0xN+kCzi;zZR8)?Hlr4FCyr?Gm<^4uxcBSL{7cFXfU-x~t z;nnq-w>lnahlz@cmXx---+6y`_jJ$- zKK6wH8lV0g6^~a@R{pbdN9N^aGlaKlhplnAUaA+f!{EU;(3HagX8r^Tw)ncAs%Ouh zWqzj)s!kzscC1~cp;f@ir{dK6<7@?18>^RfY)elO{$>Av_5Z%im4RA8H(q8sPtTXR z>*AJ`wWELU$*c^Tc`c{6HrZy_L5p zV7P1oI;DH%%9U5HUE|AMdwb#*`O_a|^Zq+640!UxeRcfhErLg{e|_=d#es(f56X5Y z&tt1HxGp@u_IA02jN$ZtvqfcF9u;deIxsB1ELpiP@h}?$XsDTg^}Juds_g#%DV|sT z&N3@2%cAsE$o{vWtCb!cY)(l{{dgtV|KhD%r#?PD?*5Mr5jrk0kh+Q2wKR_J{&n+3 zZ~uHc#pb*4mi4b*rhW51EnZt5@^FdgWTos)ezQzg-ru&c!bZ+%p}_mS-{p9Dc@O8+ z?>YTlDr?K*$^Lepxw*Qxx8)u-@tvj8?9rjmE(}_GZ+22l5ll!4&inf-PhOVxv zt}d_dZ%k@&wxOZS+;QnNR zZqOQx`Sbk~6BVC6eaigK_`*k4(2WR@yUTR-rgu9iG#r1tGj0CDU-E1JPMkMC;+Of1 zjIYP5>K5<)zpzigWx1`Nr>CN-YHRB0X@Rk^vX?(L7F^o6U;#t>VMi}7F7N4jy+8lD zX4}Vol=ap5SZQk`$KTE;yJ*dto-bcYN@CUR?d97K7sf7Lefsq2%-q~wpNH#STY+vH zOR@d%O`}wI^ThD&-Bt=SEI{DrG$Nl#A@{hb)U;j6o!7T5NM{KMt=q}5vt3vmDx#WFg zo3F1g@9wgET)CKff?OE5);aUp(b*eCd;b zU&z}#J11|=zW%7h3N*eUU-N;H;r6!NQSGn~KOXl# z{`^xzU%$VHLk!Wh6mHhqx7p&AOkLpepPLUpJ7rh^QY5pIQd4>;}rbF-p+q5R|R`{l3w+xPsQY+&`fUVF*FO2du4CU%c}ANh7f z_Xl->?wojYV`KB?^z-+M-gbB9F8K($Z+c$EBhG8<cVOn%FSmtXEol(3lVXX1OFe8 z(0=bvrF(9R3rFvH1lo@UI{Ws_e0%%8z1^VI5TFyK9v1C9wp$w!MB7znGJzAN`P9Fo7;&Cc2G`lzw=!|%Uq;`i6>*=@Ao)vK&kt5<`rKn(Qi zEiZ={u;by|zghOPmIZh@Ulv(#!Gw2d$o%N{_q0CQ{yFt`YHqmnE9>2-pQilVvvbMm zUy}m2ZrfJ)=!j-bo&DmU*%#K`t#)7kNzp^+h#xdy{(#HAFo!gKek)@aGC_0cKEuKdwVKh z>^k@J^K;M^rrg|Io#<^nlO|1KJYD-9G`H@Aak)2qMdty;B;0ki{X>C&Y+cXmv? zb}bBa>*lGc+9yw(IPmx*=zdK;c{`hF`GMdB*AacH_WQlwb+0F8F02;bUn~FpUPHDV zf64vp0h|eu@kV9G{jYqOyRN(pz^eo*2>6I}vAK6w%6MC@d!BG;R+g5ks;YSk(~dQ3dY(K#{czTh`4qPXBblng8QOclnFAZh0jo zDcS!x$bVyFGJ9xfXi8ezr!&UqFI>8G=xDe2@mIQ#oy;F}ky-^W!(eGqcJk}3xrS({rJ`&;D@Gh3?phDEo(8cPperrTk zBUpbX++4Bw`Ni_Ltp4Q{)lN*$PNm)`PHX0Um7@FW-QEYEottJ~I3MQ_D(Bwnv*r*} zNV)l~b$eF?r!#C&Uz%uJApfl==YmN{u<@;Xe^=~ktGj#R{Q2h_kIN;0es=cCwQI-z z{4?==Jg@rQ!W}y#w%dAHgcNbhOF@g6}IX2|nG~(jo0^KH2@wnF~`}ClhpXtHppP(M8eBBSlZMmE4{#IRE zA209uk7){JeNg$u2UF70E?vDU>iLf;V%pJve}A`^%Eju5gHBVMI&~^&>)pib*4EaR zp!*s3ohttJ=BCd~qt@c*=X!U%M^rpc9D@8tOchfw`-)z+ooj8sADiEk`8%oNn3dh4 zi4{9fs;DMCKkGKvvi;l5c^|T4 zX~DVcuBUEKzO>=_*@J%G&Re%OUuK-fYiIu|$@bXMs+{fI>t;>bxo_XR@AvELBko== zox9X~`lpBO@|SMjW*VN4rE{>^j%V zEzWjlU&=`#xrzsjJcl2g*5AKm=g!I_wc_AFd=!>++iYP#M}k4evdkB|rlv{L~!Ka-p` z22WxPn7(ce=Neg?lGOGqQ$BqA)_1~t)mrA=<N5I z29-sga>A@j-!wQs=|f!Uy(p-dlK$;hpIvmV*2D^<7Hj`qiI3?awp85yTC+unL+hHqQ`-R9k%NhWer4l|zg%$WbyvC`&-@$zKd z-Rz$?no8vVJwCOxZT;lqj}=9@Ko?wIyl_Ea?*SI=``Ifl?f^|bZr!>y=k_+<%O;VK zV<5YC=Iy_K9<;%CONLJB)+hi z`>^`(g^Q)U?duksw64q45Z$*TGoSoQA8LQ>w$nKD-QkDR{S$}p9m&r>&8*tM z{(kwg%!<8r`#w%DzTMP5)2Oy?58pxG#b1*|)BE2Yh_0WwnD_QZo$NikO|(?R7EO*2 z*sCJeB2f>v-|*R+ravD%?$65%T66U1igTw|Oy2t7rQ6kcN6+o%&AwX1(RS$eYv~1l z3|8$F4ZYrATdxq}E|kvkQ=hf$P_V<|3t#On+q*AocxTLO67J9F`{bj;_u8XH8&}-Fe5^Cyexm(5 z{srGY#A|BA`Chy``S@<_WT&LW0wL~2(~mR>JoX1yUB~8ZeZlu;=HT&-`v{TJ!z5-XI6xCuTp2Gp$EwQJXkr|!4vK!<%}%k`R3-*nIxi>Ifje?DV;-sRqZ(1w#W#W#rW z3?4aV)Xbu9zKAtOV?VR*gF|H!4+;{bthOC?xNPDR%YJn-L!Zy@JI1VAc72+$deXj$ zE&6}m8RGMqB+ee#=3H3$-dy@NS0cOZk6U`Z<>ANLjvQJ5Ynjal_b?~SU9q?-XT$F` zTW^&AKk;~8ZH{%#VZQv$IodV(t?ysIex<3Sv*)2WEC1h5>5uQW*7e-~R~Pa7_q^)z zDOEz!pt>&mcT&b&4V{LHy_rsFMj5Ozi-(hAl$a@b;a&m zKkNUmpI*3oj>TNQJ9*-M?TwcoI+&NtvE@uyoX(q&8zX#x>-09u=+C<4wtu=SWZP!D z{rpy+{O!)}L&3$ydu}ewvk~HUo(Rssd44~OKY9B2y!l^TCgHuVbEB#I` z_3!tp_3QTk-!*CfULhf&A6M7c9aW!S<5XH&DpPGyiQw1Q)-GPVw)gC8^Z0UE&}4`C{-3@w)uQoJr%nwC3+pR4 z2Ui9yI~;G=a>noepFCT;lleBA>4EHIr$n~D5_~@&|8powXA09`IHo({#l#4SNwAK> zWJtgE*cH&I?8kRakltF7(}rJn-q?NL+rM7!CinHeYqA+E1^551+b4hGf^vgsLL?(k z`lAWI@2)Co=Qe)gKCz+K^xj>`P$6z-q!O`jvUKg)`<>5TnWm-oUjL|y)R$G-_hw$> zzOwTV46OgepMP=x!)vWSbMF0pGmr7WL(O^B^ZQ!^3_9|59AB|jy8EHe0VC##pDQ;{ zj*z%harDsAYi@p_vMP$2t%qE{_ebs);%=UNo>lSKd~nYJ919>KdHs8n^Ve@!n0d)mpK$Wl4&WQToJ*mfYb}b7qcI;rCA7Z zRNA^MdoQP+X5dks&HVOk=@!%L6DLeLb7*(?@$G`0t%|*+IzRTxWvxDyxvN4dIB>xWk+|6j0nCtri7;NtyT_Q%Gq$ z)G6!huE~CCN0#i1itp}8i5`n(xwqwB4yvCv>r~O7eR(Fn>c!7up56H;8hyS)eY@ePbJ}>PJQi1y-&-#D3tc(Tz9s8?&Tu}F&|fdR$CBs;2q z|Mk$}$y{S6-gfEUHRBt}4d1MzWF-^ps|2p)AhG9!qcZ=ukk@FS6`<;|Ik{{Bs< zh~8fA^Lx=$`L<7o3)hFwwQ6Qs^TqS=EC##!e>U~MZ{I(*C-(L>$Kpn`_mU*fO~)a{Jk2zl-GoECFQ=4a+5cFJB0$aM_S2 zapuIy)MIa){A7Pye@$O~p+tT8s{IG&PH?GuR`ST0bxUt%R7RWesk-fIhYJ#;)y!<4 z7mM83c6R1u_lsX1szyAzFW=d^u*Xwp2ICsXNxRb)WQW|6S)wk)?JUt9A<>n4dt&B% z_9a^^zIi7(`uIRvf6KNcU!8dTnyt5jgo|~>ivNCm%&VW|t!b($un2grzv%rf?&*i) zpS-;ya%R3=d)W((id`GU#GBVG{Qolf&Cbe*a(y@J5|P*6Dl^i^%uUj^3sf}d@9P2m6dg4U#&IhdK$E05WYXP=iZ;z z-+yLb?QhTteLHvVEGaMld`vn&AR^+#EYs|YzhAE_|1Gqd3)*M`8W*3e?tiSL2U4Ey zFm-v>s3!5D_}7m_9@{_9Pu=|dKIvF)@x~@ujYIq0HGIEnGH(+-#8a}^M88-}N7Ybu zYOwqF#Zw$hk6zc=xu0jc_QzRa>zB`;CVHsg#EW%}8EwL+U&S7;+@i;_%}|%y)MZng zxy+KK=|+{ee3qr1fA)U;VDKK8Jl-n64&SJ#|BAMWSx`Oc+W?6l53KC!Vf6bgYZ>I3^I!~RBPET;PpeFNq;nW+S zpD$YFx4=q2`R-PM&mWDxe7AdHZri;z!S06Hs;#mydLh%Fp9(kEt(iLCG@tL)8Ot|| zDsNP7KHPctv1vxGth3+69C5J)T73&^izTu@&Yh9UpS0)W`-G?nf4io+Q(CrF>-(HN zu&bDHTJGYvKWZZ0Z{EFo_OWAbyLRth|J;E0m45wC?pezWtH0&QRX&-Ry>0r`sSnF` zgXZQMg1SIQpIu!YzPa@EwHdEKO9(0}D?v*LSeO|1{l5D?2)2X(bZi1h?aJWgpT6DB z|NQ6k`N`9#yQik6`n=VT+cTrz{-4D9>!(2x`r#n^&(HHg*A^uI{q+^JvMzmo?X<72 zug72Bf9X!n)`LyVQUhuuZsmO_RX;USoY^fVc438 zgH5d5pu-&*G_Z|Z#?j+)IeEXe*JT!ugm)rZxwv|A;|SE;@0JB z9BvG^AKJf*H@>@p;XuKT4QuYLjC0RiGC%kGoTYZ0(!R>6L2SXx&ZT_XGIPn&^o0f+ z&oZQ4a97#)=nj8p>%pViVo_51LD8Xo+iyGj#r=5n^_=%wjkAV}{*}gM^~U>vN>v{_ z@pYG~6$9`749?iKIGyFgR?oP@QxD8JRa8KkeH2_wVoTmoHvqJaBQbyQa2w_sbiMZ*Fe~U7D*Qq9novI&ZA5?q9=iS=*{D z_p_&^2FAsmTjbiU#Q6ZSNJ0I}lpEk7C8wV5d0Q2k>*RCK@=CNZw<|Z!+4FM-qyG;l zZ|SP#-S2kQNZy^;5Y)Bq^z=hdr}CCnq-=QkUTJ%R;@Q%zElhS&(&q|q-%*NrcSMl) zOHf1ZO`~1e0<+}gUM^4gQuqGlN^?ccsb5xZ_Ly(h{3X-)Vkz%wo`lvvGw$ksnfJoO z{?Q#!-Eve}Ol$vL@8Z9f7fOQEeBT!H9sYkV-1gt2(yPCJKI468^+-fmh}&6uEu<;A zDnBECrTgU)HUE<-WsZhx&x%_Xf09_1xlmef%CgCm_fI$zS!_}LNFevD_y*r@%}C2L zkp8hPi)`(iM}uX|5^V}`f|`hf2N45<~%e0$WH0nwk~-8 zyckU}j<)%hG6|6n_!I8#mDv5pvB2tp!G^Dj*FKVGW9kbe$xBFYuxrg6OQra%0)*fek*(Pk9 z!dGMWXvy|>)nWFsam;2&njmUwR2w#`lM`&~1U{^QOXB9Hcdzqfed z!o(YI`^$gEImbQ)Ex!tijy}CD_qKuWWL58JF4sc(TJOJq4yuczws5S!etM#^`>(a~ zI*|JCMdIy-qffnaC#EW?FZbt*ugH#mIB{>;`PMz#c9n_br(|8c*Ij$~x6jEL$5zg( zy?smSdya$wYt z%AhPOR_^!7K~-$a{u?dRw>esTqWZ1t-$K=m3Ti8)lXpxKaO#M5PZxicqFYv`c5PD9 zo0&Hw%I`LQz2If=xVUuQTw~_!Lc_9SQ$Bods#$aN=!33*u4l`39(v8aJLX1Y@J4a* zc6Y|_lCe3@&&%!jH|0rPX=-XJ=q~FCGiO%DzE3_mNfoqNbK=+ZYR#n=On9$eR`GspThYgh0$M5_q)*-T_JnBVbo?m<4<)>^pHFxhh zewRLXc8d>B`=7#kg;@`e7`fN=EWX!f@jU!~PIkp_Z=ECVHc5)As#7yB7jJY@%<7ka z_uulu^Wx+m+b2$&9wE_p@kh*yjQqDN@9uk+Cc(FF^P|F`$-*3^+Y@IW+_6n}qe7mG z5on6|NDKA_8hT%Ee}0yryT|s^on6_A46m+8hD@0_Yt>rWx81c7-tUgY1vag+?aq3C zz|WJ>xqU+C)(>TG_S{~#cK=G&(w*9$s)~w?Zr;49qON}VhQ#a8GvO&IDF(H_N_Y;x zn7*g>&&T7xdn5jS1)Y+1tXF#F>eb1=zr6)DOQ*+Gao*mxa^=dz>+50-ukX*kuIJ_D zRq^d+dg1Q7Cg$d!kBY}1xl_00)5V@GHZAT#@5x``0jU)3NUc+O(Zp!aCp*Wl{73({ zU4H)s4>0%qYt{b!MV680Mw&pl6BFZp@%ig#|6AO`ZuEsC;j~%cwpYfle7-ErtUCW{ zjoM->CW)l=^*eqa_ee_2_}IaEd&`Nr+Z(2}Z8o_!H~C-F(!J4D@6?WQBtQ$9ASr_r z4+L(j-MA_u*<&ybR8}wTdaon*;&rfnp!nf!FU|X_@BdZqul~02?FZdIf6pD;wD!YZ z(S7UJuU@`kgMhK$;yrHOFQ(f|zt{Vc{O8;E#Zmj;?<{xU`tM;;{-2W-<&GSREfP~u zmT~mKX47W`l*Astee=x!&)w;Tma=o!{1J2B>^awDrghi!gcnkL?T*pKw&{K{hqmRG zEWHrxsUiAr-&zrYFN;Jnb{+fET5fEbEhca;?&I0(G5fCc9WE$1&&vmedqs$>Wnu&Z~xEMVI#k8;-Bk_Jr}nX z?v^>D8FS=G&+FNl?|&QEuGBRL)!dCuxNULQ^CJ6p9#=;V2^Zs->+#2R9m;nYG&@dN7+XB=(ZP2!(@d`w zTi*Gbth7;J@{S`-xkkp@8-9H@tv#3c8cYH!F>uHCKDgpXK}SPm++(WcEAy>r}*!u&9A+ZKn>4sO@>Oxw*MH_x4oo*{uZez>#Z{ zmlW?5{!m`Y$@+)oj~tJ!WX|lC7M3nC{pFkfaOY${xXDy{_@He0dZml03AZ1nHvhSo z*HmY(;hGe5iDP-gH3MfxnRQ2A*UjF}bob#Qqvi$H?&(r568&E0e19i?eV>QU5v90| z3w-P=KXL#kFSKtEm-?fY1XodcBNLEpX)E% z`qF0k>ivo$0b9146&JkcOMCXj*wniH^VZ{;`T0k->0G+Bd}4S3d#9&nVMV*bMg=t^ zX!rie#rJjJcf$uD%{xADJlNtXX;QkivFY11HKF234AQr`CcP*MuDJd;q;@m=n}41O zOC|5@D^c~-W4_Jh@~k{BZ`JFQFK;bLPcfXd(p}VSo2XOyj`h3yq8lIj9N=L+_%gv{ zSwr6%Nn4M*)2(k?hDZCldn<3tHLg6hMe+N7IU(+io#{F$K4)39uY5kU?^WFnx2S(y zovk;H{4PGYt?9)q*Ncm)FY=h*Fbg};|MGpxuP-xG&YpN0a@G9G+_h}c&kya4Iyc|4 z@zUIfUn{5jRcCXze|!IEUA6p?xdxw>tUb~+pc*uZQi$Kz&m!9WtPMBrZ`D|Cgr)>`(S#H{#-ng*+yAksel^r{3 zFBYxhf7{vf=8DN&*6#2LvtArA`)iy1=T^i*fzovUuWuGloM%{?qI_PY#fj0xeUDrB z-8nq&N?|KRU6X2-$G#JlWUR@(`*y9bjP;lD9Fr+UO-~%LF2UZkDpB3fBE9AhD)-4zXi|g zOFjHj*j+PbN68ae(8%BnvwO0TP8YOnZOW0(;db6UbJ9#^vl(d}o0qRXuk-fMUFi5l6t?` zbm7Z$EN2o5jvTLgAbkd9KTPGkceF@#yzpy?bymaM-FZ1J^S2g z{%ldDD|fr1&3Ar&$8N}@{#T9vg|ViCd-d!iO*>wmERjybcmwDf7Slk+O2r{9)3z<2T19go@~-OI(FHf&^U75y}6+O#uG@24!v z?0Uk&o_3;pS#0F~?~i6qHZi@jFq5tA@WC~EEF-4XAKA+j$#~~ni{SNQ)c{ZN>k-aNb%s>r&-{U3=@|&oBOWTWC`7<4e=`sfaD=F4u|4T~c~%wZ9Pe z#ojUnZ?ovr7YvEtlt@Vq@0p5?A!WMM%pI&zl1Cx=d}9{5LZ_IlI66^40$gON;;I@Ycnf|19pl zAj@_`s%*n-mFd#H!4U`ZOqL!9i%{&oY-Hz4`HBS6B9~&CBOmeDO?DR9h^@Z8&SnMAz)UI~lhx z^`EP_Q6aAiGT`2-);GKcTEK?T;LYh3y6=mf3ppA;mV;_?m`QhlG4(RwZF@(tgMo> zR=>6a-BWb1iS^0Trytk<|F!<1=7n{KXPIVe=;=K(-~W?$TI$i5{{hF38}Nj!i#fTc z^7Dn#xu2h(2VJ;$>((vMJ$axLS?>RPd!K`aiD5^KUfsv;_z$TZu9gCQri6d-pQZAq8Ym;Pg};Ox7FM*IZQ9uc=_ZRGg?HyG%gG9dic3A zGke|hM?ZrjmN^;E(O5d8`nT;8wcQ(>>aGM--k12D86~#suxP(|?PVjGJe}+hrB&^Z zzns*{IeXDwcl}G3q-R>JuH_RaOmKR9G^(ji{@s$4w5OtmrpnC57fcuJ`=Y*4pu6JO zAqS<-JFi8j+j;67N!pUEIBQQ6YfM(AipZC*)prYaot(X$VNJ!KUe6>)pBPBwJv*Z= ze{kNs*04a%MuxDDOlRKPcYTzfy+HlsiKlv7^0f}UJP;Mo@v}k_G>5>_lzhp3smST+ z`st^q>0ZzA_V#{!-2R{8)vH%QH>ohIr8OT^`2GET`p-{K|NJ~(FBf(jbi%{Rl`H4i zR8IQyrzR>Ys^ZPYMY`6KQr%nf_4|rhl*c4l1>1sE#TNkyq zoUd9I%Gb8xU2KzWHruN=l?)-<#osPn&Nyl5_6u znR)Bht;Daz*VaV7*mdq`xA^*-+iHFmfldlYpI>X1A`8kZUte7Xwehct-VQy^$;o+U zrg8h;>hD1zAxEa^M(_CjZntIC7Y$ZcR?xbQwU00R+p9|O7?r*XdAIxhz8San&Vn3G zllJ}HU7J524j*1szvA)aNt2uc0|h~&f7A71nG(LgyIWx+cPFphCw|}cwbAZDK|xP; zu6u1_YWng0|9|ff*UpC2HXVg2$zRtT%n*!IymW}CWa6ADCl;mh7k~Ux81*W9qlm^? zM-GGC%o$u4N=%kF266dbKRM5G`pwT`i+uPOI;g*zwQ&D+OI8!JZJP{JO0G{ZIoz2U zy?3=$|B7{)#zial2Na)uy}9T)e^mL2>wYJ$+bt?vJUODn)h2o2`YR`ccV4+?v&rhx z@}n#Lg}66Ltc~cHn)~yjlUnOh?|@^UK4d%UE5=(-6RmABmVoEso5_cR>vOp^JQ#rG_BA3v9-^e=WlmqJ!JXZrMq`+-_$*O@+2TU z-2B0|J$r0cty)#_^XYU?AD<aL&A zH_hr+^lQ!^yEuRB4)mHhVS-Ci5troUG$Ye&v9`R#pSL#TPPRDn`_B6QX_<@rOK#nq zJ?CLT;#b>#WrO7fitmo3Na@ex^M5&K#*sC9l#Gln8UFn^=ThYi6|p3t^ARszpL=g3 z5XWA{lA|p$f8s+SZbQkn5fXg2d4%3b-E3ucHV3sY^*kBk)gN!)|Ngtpm(%lmGpiq; z-TP7f?>x|oggI441;4|;zt2jp{dZ(-?xMfHWy|x*f7qRxwWaJBXqHC2a-CNHV%gRE zCOPyu*4F-Qc>VpDlB#Ozfg>9aKU7duY@9Mh6E9=Z#zj-z@yT$b<&7be@?#_Pm=FO7w^5n>{nq|v658l~XJku;!3bYB~)RY_j z<}UVjeC>h*59+Lo3x-`Bpcesg7_$w{k9%x4z(ZVq06`&Vn~0 z54*!sYmYC?+$DUQYku>@fA6v?t!GR%o_(`8kAMB&?6%2e%k<9$Tk%gm;*|49lDl^1 zzH>XSng$7RZ0?>ytLGnT-}`>unfXw# zy3voLG%=HF>6QYfh{kKr3;%1*uRdLTHM?0dYj$hq%om&XJ)XeR&VAWvXOW!yu`gSb z`+iM1cUTov*&RQ0L}jA@H)yr;bnyIlkLJ}&Vs!?(%AaO!EfKsnDe24G`HRneU$gTy z|AH*P_~?D+nzL(Cd2if1p4HIu_UosgH7aUqai4eHf3GgUF=5s$FK=(}9sj4brt^KUBYFXIbyMgSLM@9DcFu z+_v1?NqWkVdTd66(&gq$|L5(y+_p;l_LRHNAH`d*6KCSTv;RZuE{&hYuL7o|32?Ff zp0j`Ugd!^7w=+fl6W_eBYsyuCA`v_vGC+6BQNJiQc9Y z^n8-4H=A$IvL#Etc$c_=PD=!xSpZr=HUHlib%s89`@Z|{`-6&pfHqUDiQIf+Pi3)+ zu6Qu{N%HFx#A>j$=Nop+rfM7s-L>n2I0Eg)3@hd`6%@zwtD?d zefX-g_PGppwZBaG?S3fuEjKn2EnI(hclqZB&HSG(dFv<6QVR_Y{X1#d-c6e}T`=k0 zwQJXm+go+I`Tx~_duMaw+^!As|9|V0pO))T?95SXEKr;f5V%c&NlZ{zOX)Pn=dH5S z<*#jX4z$kA-5;^m$SPxb@WH4hdO-&dV`-|wxr zGcsS{q_14u`kBVhEuU|;nV)X?JnfwI`Oh=$Y@g35_B&_!d`?Me>C=`kpoq?fjf6&fJS)VtANK04A`Sz|f3#pcy zTC|Gy>Xg$@L$sex@me}X`{@+#rBhDp-~VQLGiT>>vkR3!*E!jiOL)C6nlxq8${gwB zn+NZ9+%nrUrD~<(+}OJ>U%m1wRlh8`SFW_Qbm`{R)^{^K(#y+dvG?DqT>N)JapLni z+&Pb88XCiA8I_*$Tfg`IOP0G|m+ZUwH_UAP{oQ|x=2q=}e)04EKd)Bq{bT<(YwNt{ zOTDKp+q(5@=vixv3A@()IU@IVf7RKo)m#2wU-fp=Z1yUST9f-FFZHh8zkIy^`u5tt zpHF|ATmSE8?YwrJfd*&DFed#Z5^qs?f)Fkmy3y+k^it{0PyN#AgSBGyr@5WHU z`)=RwcQG{|kIppDkBh5%ximKG_c8N*hV3#%9(j8{9 z_26LhGda51=W=a-%+`4`Hw`uEze@Av+us_FYR;YL2K(QOs zfwDbcE_wgFdA@Gi<9>U)@AsusHDln-&kcf%O=XnwdG_G0(b>fJ&N;j6EPtiEbu zZk~Q(g5vJd-`#1K|7GUn_=Jat@7lGCt-@vZ^x}p8p$SNpfvrI{Voyb(n10-z({DjN zyEly&85kHu4liTav2!P=Ow7#8^h{1p&S$uD!!8umy0>E;P}o9_2(e|6=Ha=7JcsHʼnOw(UvZ+<%Gi1lpY zigJ1TxcfDAj0_A3$Ib3q6<m?_-z|8?HCKx?g#HKGdua z@xlxcz~#ii17QUSFeNZZI5@ZQ6z(Z}%f1?cAK3(RCjVvOn)JK6he8;Nnene}CD0IKce#vHbrV>9Wf1eP>oK zpEt{y&r+rM`MI-q%kR%sSsAu^=ciNJpwk?mitqp7I_b%m%l_v*)#pxmy?(!)cKEtC zZ$bCwRo=dRZ<=)8j)ngBr^nY-w(&|&Q_0NEK7FW_`}6AfzgpSX*VTspemtl6+{ss0 zSAX7p|L?l^ufI3{&9ATW?p!?AL#P zUEe=%+qP}BdH)$ffs^CMz;mEsrF>bzrHhsq4&Qiv@8`Mlv>zWHR=(T$9CQPqUFzX> z{_{Vd&z}#vn-Y|1j`d1U@7CL;0lGI&OgCzZV>8>+X8At}?{+-yJ2T5vn_adf090&( zF1+j(*MIl+v9tWIfVA`T=DxhVJpJpdtI@p=JCyr8mIisQ4Lg0&U4CxV+HIk8L4CCH zdzH`4wmFyE=?-m^H{d>{_lI!XXow8oc`T4IXPL)cNQqP_JO^8T&_At z&41n;(7=FXj4d06`1gkV3* zrT#Y?+2v;3+?@V=?}$>)-ON*+_`gWA~&m@J$rU<>ig>Zzl}04 zEm1jntXKLosP}sNZTjP5y)!L~(?C&Nm;e7+RCM&_jEjrb#P5g1Nb>Q%vxi!_H)ma4 zrE)U4-*#H@dE4#rZ(o0{n!kFZ_tKzyzpib6)@S|hg>hdkatt(R*nZA=<=*2zX^MQc z(N@jL)u(rzw^RPQxX&Z=+MOxa*7&~l@ALj%eShky@@4xkIqpoC`h9Cjr>1VqlwTJo z2g%o0c=@06{9b+Dv-Zx6c@5h`ymDVXDdCr%bZV{rJL9%nPZm$AvRyiL^`vFXrd(U= z|MFwx%DKO;T~U*t`spvf>es4QlcTG{ezv>+-g19KqVqKU_<6k2W^XQSD=*9Yzv}tV z&(FVePM$q`wsF;$7k8@P@AaHyntkob!gje=H`|v6@maswAXD+6F>=d`snO~E^7eL{ z)6SkcZvXEikCcf9h#gyg_p17hnqM!MU%qu~R@B;Q>hmg;l8^Vj)%|_aziv{|&N+wq z?e~~l+@1IA*)y5?KOZZ9y9V|FSgI} z*^D!@&DY<5YkvLKty$l`eOr6#`_#Yepsc+?mGOgI(B5aa?AGsI_veV-)%(}C#+H3{ z;7^>MV|nk{Y`wdQe`9Uy_UwC`KmUHM>&u^_E9H&!G^YkdZL+y3!oV+eMfjgy+^kbQ z@n83Z>n;B_?QyWY?W?KZ_-!X$l0L4I`&RS+!;K~Kwwhm`Elau5xN?7Cj@Rb-UO&V4 z`%SvS&hPcNYrmdI zdAn=MvvaS5^Iu+C`tx1+{@uUJ&n+vQa@z9!p3k42O!iMZIZ3tll%K`JmN|95UakyV z{qyVk`nlq96^fphE?k%}ZQ3**St}Fs`!&T{Q@!jyH1en1+LF0fv1rnn+2;D{b4!9= zeXV-8>-D-lpXa`Rqr3WQ*53ZNAhUzkUk_dx0xGy`o?G9)`Sh){ZB+>yzuX*FZm~B- zx8LU0PdYQxSbgo(6fA|5vvEcK*93ll{+u+I?&9-538R4+`-E z+c+8+B_x&xo%%fg<<3LfLSEJGt~>By-gEOl-|M3Pkw-?p@c-a2=!(smPGcyc#K4{|JRP^)|$fZ-gR6RfK|Nndc-tD1vFBY~JUGh}_ z%GqFTZ4KJ4wRHDx>$h*;?zY)C|IZWkna1gUtFC7C+5h`d^TJvFRQ=!U^>2gXgO~fA zUEFUst7`AQ)35K}`=)+UbNQS}iq36MZe_3cjgF39<~w^DxBeaj^LrJ^?{}45sRNg) zOM^6vpP##%_4oIof6Sn;xH0XM13yE<^_4}IPp#kk{+#|_Uvs|@!}M!w-d4u#vY9%2 z`TkEo-sNiQR^>hayY6jfyu9I_?`wS*7R9}*PWM_JwtP!M;H$^?r`)=7(lb5$RKMND z^Ssq>y_N>u`#kUalAx7Oj@$n$oUiTa-Xk&b+O=!cRPCGv>{q}qncbP($c@>X3*Tn8N1C_TA8rhA~&dlJEwb~N@*4*;xl;BSXnE7*x zWtjK=2l<#`n>(l?(NJA^y;|<3jzjcjy`{^aEw}r&;ELajNxu#z2mhX&9Blo&XUXpB z=XdvQFj}g5I>`Q2$CZ0^Sy|~m-nEZ@Oqmyb>-)F!)`9;HFZNtI=hwlYVC#J0%j%=+uEE5BTHH_pAag-6cDqM4ol9H;u64QE$JOxKH@m3n$w?$^4NAznLU z-tn59ep+W&)Ip*2M1K7XNngJb|4nS8Dp(Z2bG6Ug0|=XMEeiYQpe)&Z+-* z=H7ZWJ;*+(CQJDE@-L58O_BfOeCg)Z{om~8O?+qU_jcxPbI;6g!7J~4o*gUYocVCk zl(4mawNE;x)a`$}I;5RPa?-}+<7p=*C`Rt9`KkAHzb(k8eYW3jfckX#|DNSn-Ota? zKE3sN9Ozt=XUpyXX5RbvZTs`R?`!jK-MaM&GzPXg?d+?y)$jLyf3{}xxl`_TpC*=+ zm#1G_6S?#Mzu&)Y+rIDnzIUccX3+cB{`J2udrq32w`*m&-lOk(-`9Fh>g(&%iQ8jw z|M$J`n+hKvt6QIZYKms%hlA|DW9ujX%lU8n{mx|L^ESrve_yzRN|&0SpZ+{xxA)i^ z_dfjhlIO4PgB;xc`A6RQdpGLA>E?DYxZkFJ@Ak_(HD8y^3xAapx4-=7Q>(94=as+C z+Z46;+UJE7z2}>HY+X6h-?Y7@x4Uvd`-fT3Ufa!& zkH6;D|Ne8yU-#_GUniDo>PAjGm1{5k;-bhYP-CH6f1kzm*z&upxgr=D8vaHv4f1q% zcVD;f*DFx3V&zIrU0q#JCm}gGdDYb{DQW3oz3IVg!-BP@2CWRKdcSV-%RcMb`uSBV zH?u0E&(E&by}XOz!0V$eox(;L7Z&9Ho11$7F;@b^4X4^ivxBN%&sXW~)wKU|!hwHz zLD;&OnV?dW*%sVhZ*VeVH(`$0ST%&ZGVGcD=6!L?yZ6Qa@-k1qy?Jxaf#1JB-oCWYY%)Wjooc_ zJ*L>#?*Gs8@2}PE|2+5olMdy+6Vdm7UAucrKl=BT<#toc_r8v`e7$D#Hm%>ErthBv zYUPW^mRwx@s`_9P>(AHw|GmCb^?Ge)W@hDD=T!5bAT51;eJUqA1eHMr>(e{M=Y2P2 zAJ4hFt90+@wqPA=EB9ZQzjep|c@*~i=q%IhPfPV{HRFF>nqFi6VV5EU8^{CStYc$i zfBt=6zyJ2{+Fvi18`u2!aQB{mboGaW?3+toURulapp{$v*|q5Wv+Q;s8pH2?KgcdW z=X~9_%}n!Z&ouMf&CsuT$SrAEloD6-@n}r_->;FIQatTGP3(Vj$q?*~$^Leh@2jrw z{&r}^&DmuoeP5R6mY07IdtY8!`gCEtoY$k>jo0~$8Nh{f_0?m&(#F-_-rT$X{a$rG zsI8hc^WL_0FZ&idK}9=k&56?MvD5Qw9!pm~o0-1t)$MZT_2Ntk zpa@M^zv}wyoxk7hp8SPn`}R9U-k>X$)jj z_w<{an?K(?UspD}_TTCKf4txAd_GU6_>AF9)9kQ+pY;D5ZH>}>`}Xb65AF7Ietv$Q zerk&5Ov7ZieP7q+f8F-`OuF6VcKJGsGU*_xAeT?c00)Wn^W&;(h8imJYr>oDeF`EDH%ks%T&b(h;R??@k zUgov$zAsDlpFU{jKer+A@TZOawK|`lpMM{Gznpo!cpf7!C^X-M>gwu(QuM9cw?VxM zP{>5?C`jD3d-vxbkNeX1$AZQ}gGs{P`V)kBxF~ZJAU5@8``Og~{{( ziRna4xc}#wIVjjxUClaY_xlaFfdgs)%qhE-`SY3i{+Z2uRvJr#K;_)eZ`=3J1tp4^ z*5!F==jP1Z{ce}`(<00Cxus$EKK7NXcwSo{Kc83H?8zZ+{WBX94;Q^!xjgN{0!QYJ zySd)pDL#MJRXlczY4)|08ygZqr>_(p;#7ZffSLcyr>CdOZ`D;F&;0u8>fX|4=jYFN zm#;MeogfyhH~sVS`d`bz`J}IpulNLCgQ#|x%FCTb|7YL-lXlML^O?1;-n^Kxb=$VI zGcyb`b92v5(G33ds9XPCK`kf>K@r{~Wvaz3rgOrX-*yTptXGC;S$;la{P|t^e(TTA z&!1;xmw8~kzyHN~%T2cLE6-O~J?DwrniZP2@8`3cPm|~0NsGPDD>9Qo0u=B!R(mZC zQuCVw>PM!3e00?E-;c+aFI%l^-|T=qNN#LE2%bPaappO42k7d}3APyU;@ zUd)V@!OOpW3)P!$T>9z?q%?iGbo#R#Nv|JL{C7Pf!CT(*2RBl(xi^Xo?Y4c4Ev|9jbfY1G=Z zBOQX4ACCwZ-%OpJ8=77&w|Sv+d)k#1fu56=&#ThP&CT5#{!7iaTsC4yLE^D~`S-AZ z0;Q7b>HZcETWTIl-@lQE97eA}BMqRG-7T(vZukAa?@UZgQl6ce3GNQ>{c`DE)zYBM z<+Z%BRwn1||JTg_K20}z8fXB>-|lD1zmM|&4gddI|9_VDx*bZOczbU5eW!};!^fLa zPygByy{jbi{ipapN8_J7>efG}+;21K|BwFvC%QznK@I=C)6S+z>+N{Z^yjesALnI0 zGbe4^whh!xtYvx-v~o&cU*DCity4}vEh#HowtDsI?KRQIGeMo8r_OCWH{ad4_@?%H zY0#JS5=rhrDn&ey&x-udAW z_jWCL!z7nUPuA^z=M^3vp11Sqv@2O#RsLH0fgE*bXR&eiwKXcX+iPwA|M`6R;>C^a z+k3*Z(~qxNxl+@6nvUnD$DfnEL1pQ)v$Lm*YKNu#`0&tk5~v1y`R2`+nfLj>Jdeo# z)%X6@t5dS&cP38ux2xR!_h;UM6ETcu%%Gj=^|y+uXXo!Ku{P~qSao)5ZCrWm&rU|E zliRNEfBJ)gfuZ4%q)kPETff{~(CCwARrCGrd!Fj9U$y>x{lCvYfA9bQ8#F|aeQnK2 z(eRjw&HQ#2i{1OrfrhX4{Qvv@{D+5!jWaJTxmV`g&UZF6Ja+2-U#s_@Ix$h%IOW8I zImPEJJtq}DKDKn>LPhbI0>?@74!q2c|9va(M$xvXpd58IJpQhA`SWL9OM}+!c+?eB zdNmY0uE}5jC#_z$ODjCCGL?;2YRcEw*PnyZ?Sq5O#uXnD=Krj{ z)3=Y?%<{_x=j!KO^`B?opTn)ULm~V6y1Qxh`=m8CU7E5o_?7kQkoE7Ec-gLeKGkaW z_4l!LJN@?F`|PoI`I@lxUu~{e&6}ieb;vM!tsa zDxfA+!=qIpS}$L`IB_*Re(tkp&rD2Bmo8nZ+S}U;YQS!d@=Z=oKJ~O{)zvJor9oO# zy-qzXdcQbC>ucn_FCLRZSBIrOIWci>s;7U(hNPoiph}LHm$&v9sHMC5>ZYu#t7Hle zFh<`k+O>JJ@#|}APoJ2m{QVqX(rznj>tMaUteDbYfS~UlIy;|+@1Jb&1cR8$7Z&# zKWE>bpD86Fu@2-X1_rL=XvMrqJyNDwyX`}!pMDA&Te_{2osl8H@>Y2p&-?8uNXf9vApZJK|4!B%}cCqDmY?fr9oUmqN7F5l^YpI4;UvH?8K%fNs(LJlhQ85)`d zAPqqV29Xv>MZmzYK!N1|SeAi-HBj~iX${n&xJ^lA$&E=)cCX@Cq#z^Wn z_Mgp^+v@(ieo^*Qxwrp+%m05Y_qP7kE8APO>on|lx&Pk(mVNvCi~sb0oxWJT<^S({ zmAB;H{(qYuzsdbKxV2xvY5=j;!I6VvM;jPGx%?*LE5C-`l=@ef{kX*Q{?j-}`MpzO=pd z|Iot2-!lGB@7S!|iWx{^bXS*oNghnZPA8YTS|Iixqrd z7;YFN2i?VgY*p3UWB$LpcdynLN7(I&+d(Y{Akw2t=BX>1U+0Fdx?Uc%bl#QEUUSdB z{;sz_W_jHE$|d)L!&YCfnwM>R-g~-^Z+3R}uHC!i?}}~o&7FRCPx$rgHJ6uGm)1t# zx_x`MG4o#gZ`;;s+iwiN9=`Y4t-ZVK7#J8HTwP6ev9amur)~4hx3B%q(6A4he{(;- z*ZD0Mjz2RIA0by8Dn4u!Jh+27tcsD`1I}C)& zj6q}Mdq?*y<+~k^K?BL9 zudk&Z>yeDyTlLj}pBt357#MEw?_{cAm|O9vQ_?gmWM0*)m0PxNPe0lv3LZdS8NybT z0a19ME@S^brX4|RpDpNID_L}4#T2ilYvQ*Wc|W(C_-@_0x~b|Xj|lsp?n-}_{$j;N zkb;uZk|!(g|J|?Rxijdbqp(`)kJH-=>oR{%(wT2>zV+QZ72E9_h2i(RbRx18O;?ot-uHwElh@P}|dyU3N<1;kML^i(Endq+7RdSO2#Ea>2Ryl;-l3 z7Z(lx&XH<~{6QuY7) zuHN|l!rzx}7-{5JTo(MRcR%IJ59Q5iM?anU|M&f;H;?x+HTk&c@Gzwe*tHNP|AU^DykHJi`93f{N*+wI_$*NQI9*E_Xaf9~AH z{uTSa|6QnjtN6!~P|r!A0DOGB|NPVG@$)vHx3kW#I4u3^syQSKHl)9~&iH}*{F&32 zEd7_nz4i-tcaN*8i=4&I|F-<6nzq>4^WLYYEvfx`Ys=c`$ts%Rt0m2IPv%U{q}3u z)-pc>^*TXqmszISMfYpJgU*(&Jym|Ku3F76Zsry5o&V1{8^7CNYWY$2{Ia06sWq>= zB~6wXdw#kS?4SDU%S&*78MIpe`P}k2P#2``D?h~RZ|Z)3)m`xVYt=EC!jM_*Jl>#z z&P+(#y9GUVlAHb87XW z$LrRu19egy{L6O$!7 zckcXdc47CWI`7SLmCkWdH|JE>8`-Jvdwg@w|BLFIo*i9wr}%fvJ*%l+s-RH|(EOZ< zscGuTNvhUw#UZZ0Vf^hi!;cBc%hKL<>!+NYqaL*WYSDp%?Ws4UkA2x)<8F1kn(4~1 zXVdOI*uHV+(&cM%A7{(`?$+NoV`K91XA|A!PFmml2%hi;<*m4ihpjfh-)z2}V_fv) zL`g|Wj`<#0yPAq!yLN4p{P%77-)GOx)I2Ra7d!XqpJ(-a-pI~Un_=nW@c(ztGt#5&1&O0`{82ppd;%&Cs`IhTe5fW zUjMz_1(8@4v95abl3# zp08I_PTmsLPx-m$rgi33`>j#BmzVpWw|qWla`8D!_1M_h%1&6_j5 z_4k^9dizbR+(qYYzkkt;-Ls-XLCPTj)OPFNkyslM~ir_7VUnw>owaJTaeuh3>)eT zN2_xR+x&A(APehOYr@xPDR$cwt`ThT} z@B7XeggZRV3X;i_6PfU!vyH)j2S?Y6ezipvmi?6`Sw8bBCYg(cp6`~>^$qojR0};8 z;v=dRA=)!NdFAtoD>~#l)wGT`ONlUbJV-c@xQ^${nRj(@Z(h#ZT3!DA-MhQfxBh$m zdEttio4?O{cXjpd@9*~R`~5wh2{t^W!~&iTWMF7;;ed@Jbqc_Sv4j+1BLgZ` z0=N+6F&o!`y4`#rCur=-J8md@n}uQ3F&1$7Z(z)%%W$BA6I}2+6t$!>ELa7p4;F0D zdCkLMFlQ!9g8l`N-iEv^Q)6ughSv|Tih%e57Hu933~tJh`oVZ}*bC7nMus-y-3)VN ze}b3Jt(bFe!|c?VH@F!L*wo+^is3|tJMYcE{t*MK35njGdH>IS*?1NPiMwai8#XJy zc1XY03>rgd@X9=T$MHO~&OauGHMv!c6>G1j#q9?5o*kC*NYybiNZdK2-q0Eka?FZ# ze~K>Loz^Dz^b-Tas+@0-YH7uqxPxUWNm^VXE}&d-m3els#eWZE#^c&!66F~Q>}#~gEy8*`7f7%(_UiY9Sp=wAX!EU^0Y zahqsk^!wLyc+UO5`SV{~Jv+mSO)J?Rm`<1SqGl9a@_ zW3`Ub^_ttl2iFSBaTWVoWjpKavssLiAZ;4cbxtRpo~9eP`s%HZ+l^VCFK=}3-Ik=! z5Rl5O&uDv2+&6NX?(ql8|F=(XJEvrpb3?%2=A+A%*Izfrfn=ZVL zRFh&*2)%5}UT~!AGedghwm;t{em712d1t@0d0r25p+eoC$MVNH)#nLBo8@=5wzjU! z*8%Z>>{IvVw9PwTy%nv`XMOl*XT$8%&za(8#COcye@D{3{>Sr;TegVwrY-*aanG|N z+qmt2zA-WcKae;#t7`2$rqBx+CXbE?`+u>T>t$8(AtC3+hQw>L8ABY_Z@BgIU)}Sk zXZ@c&Q?FE35)&6sE-W-WXYshF;%#=k^zCiA-8*;g{Puq>!=0}EYbECFUl-@?SbkfL zfuW7(z+Ay{87uxQv&A?24sNZ|HOs##Guu4BFKx5r*$lb8|CEIf&#lk@U-_i=?ddc7 zYrmWdi#KO52xUrl^!<=mIRE?sp0b}B;X6OM_om6%RA{W*{mzPUhF8^#h3${NT=t*; zHI1QD!emZa+nsAcXV%((ZrmoCYyE%T{8wwQzkYkc+TQ;Dzx~mF-tz3f>s0XEY+Y$J zYZAkPRmXO-l;l-D-#5QZMI}9Qo7S!}Ie{F1QTd&3LW7T8{A(0;^v<3A{T-syZ&u!Q zGGOqTt`HF*yf6CB`@O#Jexz*tUO7#7KVSaWdpf6+5)&O6mQ8y0?AaVHPKnuhAB!hw z-pdoTkgu_J{t(5u)Q;(oZYzkKKBX z`%d5f$m2!lf2uB-?QSQxbNlCu7TNJHUVSgk>reJ!Fo^BjyT;Q%_G}9O8{c29k6X6w zT_Ak$Y})GwdB(HOK4sq3-Q7L;u7Spi)>c+;2j*nsS1bkFJs%CO8y}8cu`%mYK zn&sR`V4C42)Xn3-dV_M2qeZl2YP6z7cG-M3xsqSoP518B`jaL*dGF0rFLqzMvOaYoV}g~;p2+B( z%`bCivd#PF%3nTpwR(eYqj%`p^XF$bupdjip}OF6{d=4L`F0H3@4egBQv6(`;JHe{ z_8+$^cV@fZ%ai~9nT6p12jhAA5bW+)e>er$5)%bN|1JHr3G?K$xC#qFQ<=`8E6X2ovb9WC%}Gc&`1tl(&-UH3%_e#h*K zRVv7id@d?{V71<(j2F3P;dS@A3g*lgIu~0X?e4+GkalAG@O1m>3m`Tcdm#7H^uvEHPtRSWfQ?`KI5xtatOJEaa;;>qHmUJ&2or`Ry+2$bXUy z3${;W`Y`LX1HUEf9doAb=g!{F_I#oI{CBQDcZm4$6~K09kLbC-lpaI%uf4%Ej#icRB_k+ zpY^}-S@xp7f0`^m0?)mr6%4`?Zdd<;(xxoz`I`?`#SIb zSyJF4!+UgN)vfKddJpv2SO3!0)m!{E)&4O#-28Dbwm|8_g6VRZKFr5crnSAh zVH!E@=%GVRoC#W)d3kzbVq$4~B^?g!(%pFH_4!1##_LgXyFS0|c(IeG?;^35G>FvNAJehxOvkvE6{vB)U?`yv)>prly zescZp+gI}cy{!{Ib$6RA!-7-GzP&z@t;>4%Ypv|Z9iS#f!}R|zjK1D}ZgW6ZI^&i& z!>I#?a~sc=+&)2CRn8(e)VbKt<1FSD1u?OF3Pb@t~(^Zy&`gb(dy z`WW^9`S$b+*Nu}57y?pX+s!h1A@ZT9T~>#w{NL?wo6hg77v5;ZqW}M*vcU7Liwf4i zWnthte{jyh&I752b8la)n`v`#b@cJ6TjGzUpI-lTvkoZW60}x^t#;iT2TuD^C6Q0! zg17&CFuOi}`~Pa+-(|nc_uji-xp(gE&DY*aefh@Bup~uizn}d(jy+l*p52?yzhkcc zjWAuoyZ;>Co!vUEiH*VQVB_qAm2ZvhE?3@Jx<#j?N2F=?#hx`g|Gb~WJY!W6UqV9A zuG;_dPwwp6J1yni9IiO+H)VRi?^Nx+y+1yCcGceV=eZahuKIpoeo|4rad+#3Kby|q z)myyu^L?4x;sfFheTIw<8)Yq7S+b)`XZ2*xz7)E=H19#js`dwICbzvExDSL(WZ>}$ z+W-FV-=r+NE8G6PDcyI^aeCQ1(FxY;)$9Le-)#%bGiPw{I`-}I6Nlgfg4u2lIwbU1 z+_&`iKGn}(D_+9vtHaFD`dr~$L7G^T>w~~`4^PbRY<=)lTk1zJYr-lo2DW8uuNR&A zyR6~!`_sp7)(P*uYj^GS`@8?%d@tL+pP3=#VnqEc87(IFEz?V-%~;m|ia2iB&>xfW zzW8sOcr(KUq5Id{C;u`jsPc~UfB((rxy-@r_`rWM2Yxo63{XAC$m0{d{^>Mp`+HTp zqvyOW-FGkV`9Ikw@BixUzg_nAb{#{*D#_pLh52O~m4Ep$Z`ada^m|L*d5Jl@->hT* zf9=MWx{DGF3arMlLRDPe<=f-VFE!=8V|4fWs?D=F^7Q_jrMu|(JI-QQ*2R*LAa(6m z+zcyse#g|LflUb$$#CtJ0DfEs|O|WDE;9@?z`mtzd84!@<%}@?)Rfo|)?#lB6oG zWLtcC{^jwDElvf~I1hwO=S*0jan0&{-uln%&zIL*+viXDaQm%Q)!zIWpq@jQE!}Xe!%3zE+2aq|6-*d^Qzx<9&YFN|5LRfW0Ov_ zs6Rv6%Iljh=-%Cz#%p}iy7LD&LqMo7{{g|*9R~!poeGXTFx>I^7h^-#$G`Oz#`9VH zE`&_?^V4EUe;dp=zvPl<-NMOUw>GEuzfV2j!y_G4?aNU9`-aAIQMuIFZ9iog8bo|m z8Qf)R4{n_&u;-8ayVlzRmk%;HY@NX(7x%jK>KW&PMcz*COQf4_U$@zI`+ClNwu;0= zMXBCnGxWqy9cD2w$j+WyzWw@sNz;3Lzw+7d%Gq->Foc?IWw^8Hoxq+)hr-w&=D8#> ztWXoIFbRzkvP#;eSh1`Bq|P$g#^bhvb5bMEoIlTfAS7sQm~ca*lcdQpKH=PIU$*t? zfA~IEGBB*1RmG4Od41CbTm3D^ch8Rd!sw9dtEskZnU-M1&sEFn^B#0;S>E`0{pah| z*4M4>D=ayaEUz)iQTeUHeB(2dE*y@zZ!n*oVZx@FtPeU2{h7b-U34ht6bRJC(Nf{nzZjLDyHvGczP?oyqoK+Mn(noyQXx z7EID%x1HtW!{n~ATczZP&a~FP8Lk}j-aRp9*bw*n=RDgNKbzS*k1dYVXKJZT z^B}{4B^?JA&kU7#d!r*|dQ0C7R~cP@4!N&a3_<%z9#4zT>uhG{=lk;WYn5%>*Hz(1 zzg~~G|5AEz$&Y!gA~#i*SGLA8GJ&c7!$*quonz>R^I2fDwJT5n8IPRYo_~yr@bCkQWi;K{TFY}Q{Hhs`)3$~bXokH zySvRnJ*3ai&c6MAxBPzX$EoXURHsdwrgVDKjU9!_F=aPXKb}dqGgeaSvwSuqA|j%r z_V>4=+j4Ka?Kd<~V=@R(TU@tS>blWo28J~us~GN_kJA6elEk3k&mtEqs$AeAx~x&T zOQ`Ak?_0I+@9o`K`uf_p`}wY>+5TNU7p_u+D&9=ZZ0k!SCP2q%ToQ`ojX(NTv!r%j{U7l z**pDtsSSfe{nVc??{PabERbF==w|+z%@}{L0 zzFxcinC|vFLiyFVZ$CO6|E~zNwOdf|V|V-?rMSPZ!jJcw-;+?ETM`sga?us!(;K_X z^UuHD{rQ~rnWpmpr$ z)-%^#85$0Ts4*}zlq3sPlx&{W^LCTsNq=VdkYc5Zklkf(yWZa3?(T9VeBY<371wv) z69t`ZV z9)UJXK5EskNwl7{?@g+HcYp1hcVqSUcR${w+e?Es*nu`lbl6sZI|7P1(1Mfu{jNIqzsLW+b^X!3>i4~q{j4&9zeWsA=ke%!jgR#&d-#ljn#)BW!hoz^Y9TY7zK{^`g4_Hy>WF7`jN zeP8K6r~cnhLBYajGt-ZOw$A^X6L?i$d(>bfxYYgqB7-qC&?yvh+CCiXt!DPS?P^t9cS4ghsi>Iq+ z=W@*Z_qeo7v0{qmiMzYYkAHi6d-2VjWBY1aanQu z-#5=c0;O2cZrh2ek)Y5mdw=il*I%GZNN#LQcHi?l_I=dHkJtCUEB*LLe7{B3)~J+7 zG0;H@kN*7zpHHN+@88$;$3aQp#{+hIiQnJec7q02dgTBAI1bL2psngZK-+_UfDRY> zo_t)U*k{lC+V|bE)@4UN&;S4D$EE4}M7H0rtNwE|{*UYLU!cPYcYL|z{djf!->jOS zr{nwhYaTFf+^|8QxVRXUS)|Q!A~v2~`{D1;^YwP1&9XnP#{a##<3SVmqb6>>jC#NI zuXA!=m+$*L*W&G#%eTItcendAamSlYr;{!(^DVp{TYhx8-Pe^BKTpTsyLT*6uY2(u z{spIMcv%=E<}&aw2q=B15>;bz_pxOOPnWV-q$7N=`rDgM-RNyDYs0$JHcRr`{YU`q z)#|tZIoZAwboC-Lzl}ir|6kW1XZlx1?fH2&zYnziytm_NF~j#+4EHuByQf5osn4r; z)b;)R*|SHD=Y8zy=l~th__)vdT?gpgtiH>B*1CMMRwCEq>uW*#G~e#{1qyGyy zJelbJ=xlyn@txxHwuOH_9{>L5#-m3`HLs)ZcY!imKPcOMJQcprDDMBS>&L(E|Nr;K zhD7H(g~w$-HuBdffVN*%9Mz5!1RW{x=GIp2y3gkI#(8_cUbA>QCHT=({raD)a{qm{ z|NnW%&u6nA^Z)Cx5ob)_*y zCshRnK?7j3&2qc)YhOnf9u*BgB3ph(5LB4u+}@V^;xyBOTYKc#86@}_B^VxX2v*c` z2{ukQUlMfrfS^;sa!@K=|L4?t7ndVP#p7jmm%r~b-}kZiPhcifjn9TD?-YF{jD-xc?4<8e9ZvuVcP-rWTan!WyI3A%DO=jJ9= zKkK(!Iyz>|pWhE!omKbi^89VgA8w}4mlYILpI4Ct8Ubu%X211+-|gdd|31%mUmMm9 z+G!PA7z>KrGw07ApQaoAsK@wRM@NTl^tL0n?|s|W`0e7#<@2Q8*F3j=oSR=A{pYj& z|KgfYljrwsu3?bdu?=dh;2F;{C={WE@c*SQX_Ylz75Qn10A`iog>+50*-|c+vcH~pZ z%is6^{{w6PdA`0*ruxmsw>zrN+kQU+^3e6T>RcBce}?}L*zI3b&0IdODhssJb>Gjk z`NvGJ$6T)azkT1=wLhMy+e?Br%_V()cJ|{DVgDnI%x1So44a(+qcSkWhJxxdouTbo-0rK|L^a{`v3oK?5Qkvad~rpzddOD_-obP z=U?C4*r>ek|KIn=r-sK#f+|Dty)Rrh=HA{`@xJ=LG&{fCo9emN z&iZ{1=#Zd~psmx&_osb6XRV*LHR?{~^SK{;(ruK#y}vIH@`>c{@9+CT+x$R50@~S^ zoSCVaxBKn3inG~qm-$wAcXxlh;LH!Y%Q`$JZS&0@{@NGLA20UTnUuY|Bgt>`!2z_f z_3g>Wb=Pm6j!d5`sy?T{spiLF`Mz%beLG~U+xM=i|IuFG0oo|5q_pqLQvIW`<#$B| z1wniEA8osxCtYdJWFUR+Js*RCG-yg?mjUOVy4ENmt3^hqo!rk9DOn`lIqlqE^q}JW zJX=uAeA|C|lg_$5pH6}5z~BFNhcUb>tzBPrb#+o*ot@pcjr~X0#qLf@OjL~faY+2w z?0a99o!F$aE&slp`JDping`7C9kcUxX+C@Q?2&GMrMJy<%k!D~x_2w9Kh?kgwlTTi z)(n(>z_kJBR1Hwr#(mo~ed~GaJG=Jz*E|vi73KN$zi;1`-~DV>_M`RxUabe`j5{@- z&%Qlv3o4ZQ|NrQJtStZ2qvo0M{LYRJQ1J*d)pY&l>u)-GA6&}K8+^H*=5UKhLj(cAp`>Y7Kw^CLbNe}8jRIC@*o%boeK9*M7Ymxqm@zy0uk}85ez};9e~P>}-|U%dU4HD*qoiuimx=3& z=iI(u^y9X9}Y|>;M z!ZVJYar&@ERGr0NjV-?V?N&p3d;2f@XV0JC4=T@vZzzG5MZDa|V#08sL5JN|&NV`) zvNg@;@0|m#H`zDGO6^)&diOE+rTyQs_ltq@;PJ9b&=gK;5|ac&0*6}T@#P$oH{=@6 zVbeQQH{-8Mfy?%l4|GmHy0FmM_%_IFg+~t#Hn%BxxiPRYNL+g39BI`hB*M z{-YcR1=kA9NsWASYiss3Y0$|5Q@`Cv?&mz93Yxdwzz$-lHRm0 zYI#sqtGDm(+kE%6&yI^RFfh!RdOLr=?W?c9)|fXdT1;YMFj%C-vT2HlYTdTb8YzpU zZ;BOpd3vA&_$oe~RR6mSbaLC71N&-!KXR`Byl}?s+1)y)mALKaPj6)4Vc5W@^r1pj zv(D|vndOb$oAj5-Hf_$S{P{d;tr+Np(Z_Alc^%E{{BC>W#G61-&U$SrWEN`5?eqY4z zC8Z0>?)3ltV^WZ9`J%P8b;kVp@uHpAZyef~cRfe+vEA}lHp|u4W-#VFTevx5x3Ut~ z27jT@EywK`LOj!Ny#4lnqW=;VmIQ_dL!n0X#Rc9@?mF@l<~>wfD%E5?y)iE~?)Bff zllLE%)$x0OVAFbYpP=v0!*9wLAHDO>Q-7m<*Ub9)Ge7Fb7{)HLVi0lv_xwZ6pR@b* zbWUZ5RS7pRG92?^nb$K@zT@382KMFM+v1N28b)n2|DXQ+cvb9kfoQ8s+om?Ix9?eW z`?JQ}<3WY_$Crc!M)W(?#LxVwA6cp#;CEu;-KZ(o4H*I=W$$-=7OePrcv_vFG@}GV z0+Y*wlbUZ#3XYs{F1YyZw8bH}*Z03w`>p-IGpx7y*FH7Di@(LyE>+iv{QkzV-_~5I zFUMt}$j9m&u32Z(9=^+FNO+okrRK-d7?9sNH6Is={&llg2{wPO>Gks8|J?o7_wtST(Sp+}`!r5`?_+Ae-|?t6-nTJ+8cV~YS$Fi~ zjeVI67!I^p9x%0RoqM9N?!mmazehXbHkKEiUwQ8I+BkuCPhN)`hMIqRHuZ6t*jMpG zT%Y$YYB+7{F7m_FjcJb=Tf?W1dw17>+@x8sAiIdGm|=G?3C;UVGwueB!y(=m}?Egv|Imd4-a_IYYzLKWoDC zKu(&{abR-j4bQnuEe|@F+CNF;S>(H<38xObiuX?|F@u{uyT~=?U0~fq! zX8pPEhHqlLx5}aHM23c!f(?ue%T6?|KdE)*;M+W|O-E8Eeh&;h-+y!V%Lj>T%Rgmb z>*t=FeL0}*`9Ck$`WTV4MOzhSU-V7<7I>)ZpA92}M=t{pgF&j&hbN+CP0JmE{ayJE z3a0iS6l~R#RaH}1vWn;Y$El}2MCgQE(Ydg!MC(eOSBT_1eFlb=Ae+-1Smy04KTU3BWx9!3U_sUYViFKbj^|DiCL zLoRA(azVFdVo=Dn=a0QoyTV($X0qOzlE<}my-?V)=ll!~t3VONB+$5g@rBC=1Y3Cy z3MPH{GDB!t&Z$2&(QAD!t}0O6oG|kEfA0i zoK#!pVr96)Rb-h)P=(#vux$~cJ0?VKIQw#0!Ec?!)M`7JCIP{UDlb9P*?}vb1$EU< zn;gfJC)hf3%anQgtEUE`IFyK3xDUaB8`ekd!IH@KB&2J4+Ad0ac+3x!^LF3#Za3hbXOSs!oX5K(_kwPrI5$ zvhp4jRK3-18)u5PEamj^$xs&#wMcViGoDYN|_bguF!Y>y><=cjOC!XrlAb#LVam(XGPH0Kn5Xl5)2g6upVt1VtoQf$wcelK>Gigf6Y49@ znQZfVFZnQU7pc&)Sk&^nn77G*NB`=EkRJh&AI`oG`SEw=hLHJ-q2cD`#WHX1rPkAv zKn{C*nUUkrhNx49D@7)5VwpW7ysLKBhAH#c!_@k)%+pn@_!HE7P_W71>Xa%6E#Cz? zC)2h~N!zcc_4TOAD*byYb)GdYFR+;Y*9-&T&H_2-xwmUuC+ zF?dY)%p~3}U?V$Mabd~tYMv_DBi~CK{F=^tE#;lK^zNHUc@<4Hx(o~+(;0XeCKy~k zaP(qNn&sk@&S~xER(~ofSYF5eqqf##_KwTZnaU}i=GKdj{I&_)XUD*>#1~}z9F7>7 zrE}TxG;f9!bW7a19mROydS8-oL0j-EhR9dG`X7&}pSaG;(2xa6G+GBHT{t?)hoeuR zSy)}*{Ir10bxZsDRquV77WDo<%ga-}aI)FD9|o(}$3OBc zR27sK-oYu@c}KkS<5q5l1+zeTl53MniJ_`sld_ks=$$019XpQjOzP_CyfbCVyU8s- zsyG<}V!>{h$)>mLiBo~g%H)C;1)j}QVq$z=JX0yZuj2BDm0^V$qXff(M=lQ@d8x6u ztB5u$vn0+~qOv$C$z1c~Zw2^vh6Sz+Yzzy|niOnQm2Og=)CEe0UnbYM_c@`0n%V>tRe ztk~R3`qe$})?aW=J(SpFzS-z|>`Bi33=Acp2IhsSnGYVFmY?IVrKTp=9PN@A6udKG z#*4FS@BEEOdIVZW0!q$bRG6l_PYOOLIJNVj?jnQKz?&X3KAc_mrZ&n6wEdnj{OV_JfI|)kg%-rwE9m0nZTbCbJTf^IUcTW=XxXdz19-sZXR!t z|1v;I>Mz*8l+a)+zpDRB(2Xk0@sSRO{$+WWy%8cMO|;r`X_%9s$*n`01XK>lp6BJ#7*TqsJpD$-N?gX)tTfB zE|%S#D{kn0mC&;PD9+IERj7fHA;SFffu~_JpDz6D!`^>YgDbLW2T^}~1a4{nA7CZKrqY0Z3KGL!4w zqT3s5ceC|f+FvD9ds!7^DX7WB5S%Jy5t~#XzpQ1Y*4b>|Mftyu#4|7~17+KUS3bHT_a%Q5M<8~?Oi`%O}`np^|sXRc3 zJJvSogT&X@{AId=O7B@Z_gw`=Y=8;K($-|D9lMS^;1p_K?c6;}>f-iWV4a}!vtUEZ zgDm0ZkXhf6I9#~cOPZVJ{&sy`HmR=X=$6lW9)wImj?#H%^}U}ad~1zJ6;we)6A z*MXkc?Fp(}hi@H;Q}YE$b%CXhn;2Y9@RA4NB-t@0m#; zUta~eBV?YynKfU!QVtoUDt!wQ0r^D-)D(HZp*Ulafv!(r=U$PCAGjG9v_YybIC3oO z@ZmPrRnkudrF4gKP&|H7U5$L$KFXl6_gkq>Otab966S)Ir1<|xWW?@%nZ$- zLMFk%$v{(5g|F+#QMC_2q96--+!@#y8WcGXh8$hc7^oqqpC~>JR7@C1F-kBnxT&xl z-W1rB8oFrX4DQ3ib&L!NwIE+cs4GgesrN8}BNsd(%y7(wgRS8qSZf@}0X;JXcpN73 z2t}lSwDtbM%Fu8U6io?EEeQ;1s`BCOoNF)tmCw? zQ)awK^6cVzd!^HxME_sU+Pcv_;i5PL!!l5bzTiq%UBb@Wj9(lND=&U&_Vijl)4HX_ zLhG&{PhXkQ|6NO8H2Uc6xR&P*qF<|IzVPnbx&8BheO=w7mo5dFOq05pVWy;XP2|Tt z*jj)j$auXG%4 z=RbbwQjm*S;oGg(k7@rqAAW>YJVxO5_Wb^i4$u_l$6MF;nSHb0X#ec_bLFI3!HO3j zs#9jS|J?rgT3w#|wR>V97oF0v{=f6N_+t%81_quLw@ZTm{oOpR-{ohA#fgI{>~q?$ zYybK7+g@HqDJk^J*-biGk-D3ru6?eXbFKDj_M-f0yWUPNeAmCo?)df3cjQ7u-@n(A zR{O^P$y=}2ExGd4_Ya?zyl)kclUQH-Hv6%8-DC4dQ-b|EJ35vwU20MDqrgPUUA;lR z?#II)Yw!PBdt*yx@Re6vS6t0{%OPWUBe`bA@yv_!9$&7=V`eyDG80s|O!>s#E8XjM zeT6yq&j}H$ulDV$KhS(at*QO8=`XWc7cdiuHN-&YA(tzBOAJoo%u?X6$;6|Q{r*Y@=e+f{}4zU>p- za=PSAm*;&qV?KS^JpH#dpH8YDmyY}2w&PKk_M!n|-~D`d z{?Whp|83-cZI|6xa3*Qb!}IGpC;QoHf=)91@hUgIw>3v`(}_iby^U&(?R)t@Z(scR zr|oG5o0r9kpwIwii7BU6WiDUpW+K&F_F;CZ&k6s2H{(TN_EMc~mJ{aem(8B*Ua|Lf zbl6=br^Oc|_zv{C>6p&mxaFth#)?y)A04@Tt~1^4^B0SkFOMIacJ$~C6Zwg*%6zg` z61%^@>w5O*-;b^0HbUzEx4S<&=+1W}_I{;F-H)leAFVuIb}S~WJ8i9GkS?vwC_u zI`6%^^8S6E@cPaFe(jxBsK+>Ozkjvcg+KbHPp6gT>6qR+SYB6W7x!h6_)+b+jeFL7 z22Ee~9{aTEJZOmNxcpt&?|;{~KmPasYk|#&=K06xxqm-)=T6L-tFH~i*B=+Qp5Iab z_fh|&*8RVmcKrEt`th~s{M`B6JLX-jzIQJ0{pxe;Z?F9y-TyuEk5c&Wop(R}5Nl*) z&@cvN%u6TTCpn+}Y4K%?_oA{lGcV?(wa#ETw<%4>_TS@(A5YDb_Z4bnZN0UNPoZ3{ zK|bx|h0xpA4flp$W4=9iql&x`DCNnOyU7&a`Y(8X?+4bxldk7G-HPq%D!%JKS~!x{kYP$t{)2n3sV`_3tp3RFgoNE<&w&T{rqdUIWzw6n(@7sI9-jh15 zclPa{KJC$$H=R44WJc!9&UQPa)t46e#%|8h|9?`A|LxsrsC2EqUOe~beaF&hwTdb0 z7w+9xCu>t-z$a^UW!|s6?f3iE7lJ16L1!C&e3Nc(-Dm&rM@K~5wV%81|IL%JE3v5i z`T6d~$LjsZ`hLrGyVrlKNIBb4wN~!y&Ziyow_nLP@_73{r9R7SO(i8zVI|e;c1Hiq z@kfu6T-NX`d^};l?O8YDKFc)koEsZ7Uw!@MQ-2UN=`yeCRcFPc&f2$6H-0{yz|7z< z(}LZAfnn*T%6W&GkH-pz@BP}gX?3vT0&i*)7UN86m%l7xZz5VyazE#yX32mcLK_$glr%yYN-z zb+B>gMFrZEGi%vaHF>G?U)={lL2)AJ4z*%&$*$|8rYhuDi-ieCw|n`Q?iR zz1#VZUzPrT{D1A$&5!Nl|1{0Gy(xFu_TLxo-7UPo|4(+!5AOfg`@S4mw&MKS_y68~ zlbLr@=zjLgO)NjE=Ka2_ws*Recj1ErjTOhO?+NDDo{mnwyv$d4hhp>X?fLP4?%w|! zTk~PP-HsZ+2ZlD=mHYH!@6O7}H<8+y`}^{v{ret%{kS{-&-#spk8|obKRwXMT=>}C zUQYh^kK@VLANOxv{x>^vZEY4i1A_*)@Bs#fDSp->Cd#jl+iLsSzh3g=m~*5Fmk>`@ zq*(f#(x95JKZ=#g?p?cgZ{v~s%BPdd*e36LxI{TYC;#!O;#+>FRF)}6*Kbo!OxEPn z*LD5el74jN^nZCVwLeuqp7>W)^RIgMqwx8~QFA`sIs5U-KlSAIkAFWtq1V%T^rywY zCyyV!TrMNt|Nr0`6dHQSf<2UK9 zf4=Yk|NX|#zw*apu3X=G$>c>}#^}3$zd+#Q5Pk6I-O5~9{ z*DOAs5kK<(b9?pU)DU<|6hKwD0tfVV|%{6MDKAk_iHluKd&gQpFdHyDeE-*?6Vv- zhwGEJhLuOyi5G3Y*;7^fQ{14f^4{-_tIfYg-3^Vcep>b3_W9q5mHDY*skxDncSC=C zFPx(F`q|F(o!_6F{Py$S`}g0q_y5rj(GpEdOS_h%ar)r4+`6CB>m~1h|GD`8H+PlE zC%>I7Ok@2JVs)DT{{{9RN8^8NXK{2`7?9yDy>`)*N8)w=p6{@$nOpzklYM~J)77=1 z%cRtz1XvtF$V@5;(vv!9~2or-FkF;D&9t5rW{e zUnco$Y?FQCm|Za0Q)s1%@^m)?wqM)7Z+!is@5ij1bIT0bx{h+?t?Lh2v9s4nj*K{M-iQZSc z@O0bN`&z9Dle+3=uZ=D)xt}+~;@Z6pM=$=ZTXMbN_ubuw%F7SxZ(I9M%$oJ6Cx>70 zhj+F%zaB}R>tFw_?s|RO=BGyezZq9Xow)ne@8YH(>DLwK`)m`rx8Ls1M)@C8PN&w~ ze-1k0S97Y@pRfNvOWptZ%C%&}r`LinxKv}+9%VG$BweHjyd={IY8=$%~ht^5(Yrp*Ja+` z(Q9ZU$MWa>{68u;eP`dgdf7Df*Dcd8_y5bruYGzvR?GF1T}TUAF7*80`$Lh5fCEw#n4IHP@A%HK8+siO1sGn{OAS_4jvQ zn|1HrJqz)?-7EMTbED0Ee|sA({wTl2u#K7hTXJNXbG+)G&CnpfD8Lv2%0euTH!eu5 zO3FU`uTZ=CWbVD&y-vK_m#>R@@!Yafd1_FI*3@aQN@BN5*;(>Pv)&HVJ90;6<_e2F zB~z?7$vR!Ub7y8FA7^=e!{Yvb61BU(6_wU>oi^5LZ?{5e; z&9;9&p7|S7{jAzzYvK0nHD_0p-DiE8P;y|I`aiDQr?+nHeJT{TY{rkz-y4e@c4o^- zn4S`sDtvW^!wr|8FIIG@e- zSDL-_@`Xtj65R*3uHcRT{pz~M(jf5S!q=Nh8lF3@zOSIiSG^~9N|O=i?Zq--J1lBN zFMm0AweQ;AR7Oqhn*z_O)&_VzwBSpu$X+C=RN^V^U9^tL>{ z;hUprb6$C($B{!B))@tk-|ruN$Zpp-`^A&l=jSP3zwP*aT3nkxZ*q^KedL2%KVQE& zv!p;~x7a_cSNfZi%{Kgf;FqSh?B(5i=fAw*aenT`(aaNmU$^Mf9Ow7j{QjKcSjf3E zu4eYXcej6DIbZVe=jz`Y^X=L<<~0TT+zh=a`eCcL=KSN^-p+nDFW770RyWP-9G5H*8bj`Ehdo56_^LBF@j(e}4M^3y;6eM;3-{tmjtQhjCr^W17HU6L7kI%W($d zuYJF_&Use)v*EgMpMaiD`i2UNf}Ddf~-@jXzu^5%V6^dKS_8VXS zxMk9=SLHWuZz;FA{`FOOO7M0$Z@czez zdvh6L&hFn?)_d*Z8r!wkE^L&DJ^dW6`>`a?+LV1t(J`745vU zZP)dt5UtjW%brPu<_bFZ8fGl!>^XMpvm&3|j%IWHC!Eg0(N)b}4XN6Dmbjn4W@q)= z`r<;j*I6@nKJ^oswg!k9$63z)uPR7>jyp8kML{^{8xE7ai?FJ){Z_@4U8?!`qrR(SH7tenF zcSVZW|N1{nc}bnRO=aJYhy33x=X#)Z#kb;8r45@zmix^;B;ox3+q%fuyAnC4AKX|Q z9>>YN&ZpNfa-G$+=%~IcXN4WFKi(Uk|5p%_xm&`J3sD6Vw%irFjKc$`o3X{-{=s`_ zLUZlAu2;MF-ao{zZL!VwMw`rm;^O~qOc^Uf4t@U{dTrmf9eKV6SJn9XWi|>mmgK#Q zPv)80xA%?R2Z6(r+g=68Qd#f zdKIUiUO45^rKR3qzJ0rN_pYzRy0|$ZUWvEOE?>SJv%hZcx^;S1R#vZm1s5|UZ;$=I zc7NH`nzOqUS-w;$gzQSZk*)Y^wi)+MiDVyQ;Kwo8$Qv=O@na zOyBYP-0mNz!uL4|u&iER!&@lR-hThLLHN43#GI0xtLJWL{3%|+`)ymhlG;6z-w}{a?X4mBV#+?UD}7wS$}T`e6!2=Z0q&B z3zxGwN_L9<=gB}%gFd;3oMs5L*fh}lul z`0-<5+1p#KL0twpx;`6IBO|6AovIx!AuF4DyiYd8Xy%T+Hy9n#yXkRm)!72mZe97b<8|*8 z<{ho;+&&+XXikm1v!k%NTU>ur?eDUx?PbU2zYLQ(z_!E2@Z5zjA)BA_HmrGVwD~}@ zbL91<+EW(_gh*(M1gr|25}#dIx47d!q~+YSVIm?Ke=xB!4v+W$Qx#ep>FO@F;(MQS z`3Ls@U->sYf2J9?9JHkRx$*p;Jc}1EUcFAc$Uc11ULKx%CqJY(2!zGvxoH|)xOm(1 ze&5*zAyn8ORLCNmW%bL-a~Y3yd5A{)&t-Wjxiwr> zQ@-0IeExR7G)e1n_G5;&T`~tg%T8YRdQ!bVP zm+x*q&g+WuCh`0|Mmev~B}IxI^=j=-eq5S=ZNJHi)}$BPPgL#s{(7xFG#D>%DZx7< zv$D8OR=GdPDq=WaYO{9Fx*dIHEe-3|pOmPIXVqqhgG44HO@cg>VTpKaXS-7CLd4Zpc5m3w#j`*qKLFAWsvw3pt))~x!Bmx z$vow4g8HPuW^eBJY^9#Hdh7)PZ8`rg>reQ9?edg=-`*RvI?eul{Y2LObfuiz&wh%} zdoDcx2g~elU#?g-9E?3!EP8nd6YpaNzQYp^#MiEPrE#Z-LuJ?Zz>8*26%L$MIZ^U#hTP1A)B7B! zEPW(!XCnj8)d?#mGF$vRuVZy(&+lWFr+%J#qifvu=t=3fcY9pc6;J9cTIl#?t$1T? ztkPpvo_iD1zOXi%s^?_gb`dt6&0L{)@yI5fZ8Ki~5=q~`Ui|oYzS8G| z@{0e>|4)82IsRaXR_@#M7Q?Em-qlYS>fY^q&e7Dc@8G&f#v5s_d=I=QKfW<-k^S^% zze?ni6<*$uk$iJJsB2}=Okrp9fUJjBvA2^pg*>|S!=n1v?u~CF6T{kf8S)p*j`U*K z7s&JT_4Z?xU$f?2l$?LcDE7rR&KDZJ8}wtB9p>D~aR1W>tEwLx+4GaV)3YwxaYAy+ zAvbq;EHx)T`ZFCl`W#Q?dP zcgjAA-l!@tUzsDdRN?mJMl-gh>8BFN%ovD!}B_##tZNGoG7M=g`%Vq!1 z7o7PYR?0ms+PQGe^GbbHU&yjv8u&8jLqBhi%9xFJMEL;T`VCC9p136Hq`wLYHWzu(28rfuGN+4#EZ z?2YdvvMldJuipL7#(MhV$It)q&g`#gS-Jm@ch~(NYOBr`AAfP}u=SPajA336f7>nh zo167x%~}=q45xokZ0&o?&b<%tW^y$fZ1yE&WHe04E-vuq zUmqj$@YNNO*}H>oT+8{rkZ-z3X87Tx()zz|c;5|uguiA^T08` zqyOK5+&4G3Hs_deANcac&IDbaC!8eC_op|Hlpw^QUPqt0CYo!r1%j#@@{V$`rvC2>W{;_!&e*R}H zC-;|cVRxse6|FeBdfSW82ov@XF*>J}W}hwk@*;3v)Jo6T!=gTDWfIq-IN_gALKl764J^{+d3*cax#{MOdg7qd}Ytl{;# z;KGs_pI#Uoykb%HLuRVBy5{^U#?Uzm6N^r&+0HpD%llkUmZ|FNyX(uY&bsEhJ?;6; zzqKX*KkZlk{juNhXL`Nk)1TsDw~y}n78dV5hy6y`k8|bw55J4u{oJBqdieR2ok!N) zld=B2DZ*=`?!?6Ca<#huk4}gzHHZmexOZ*tLjCDW)F&tG33&GBg$nb|T>=*#u4&kp z_VeuQ4_}Rq|2#bX*y5#3oKo-GDvi@on`+CmI{3f#e-^g?mBd>TOi@>-oH-G=y7cwKpnNf} zm09(F6G9(F{Iyt{qu)1q(S-FAPE42BUD3OC`+KLzUd#GqMvGH_t&jhVzCXEWp^!BP zFWY_-uL!wE!uC~t&h7dWzN?Gz{FP~4YkEvz7K8rFiMK9w+837QzUwb~By*s6{n;3q z)K59D7=!mddn?p5`|fY)qZ8~abD8v~9zFYH!>h}3Iz^dlHXPdf zi)a47h2JNhP2)UV5Esp`Gp29;uMfh1p6l23uC6xUxK#V@mN{644Q#%?yT5&1=#J#g zyB}Hk@%-GZXRBA}W#>G~*_BO6rVVPB1f0*OIzW2c&Z%=Q(?5Fbb=EkYT%iVXB z{L#s~wA3P4A(ETb_WSVweKu#^yh0rYX<4JfzgCW^Z5QSr)A!#{d!0xA?+NRidp2GN z=dWn1TV}OgOsHwAp@YMrtp&w=6QA#Vo40co^9>!v89Uc?=iUZguB0;A^WFacbv5_Z zC!hTAYV~>}Gqbj!u8$uJ`{ZoB%x0(l{`Pi`ef_-j`L$&S3oZ%<`aPRHiFwA)cNes$ zp9?ruK`jQi^&DN!xpF8>M z*YwNtE^ditG-LBwaa)L~N-^mB9p_iy->dz^YqP!l80`Y&ejawpt~XW#-+JWj)XdAh&WGf z-C;FI1ED_MF zJQt<y3iNwO59lOSfGTk2;@zv**N7DYl1gMGWnUHy#{_TC0$yGu@|LJv#q<;EY*{ z_GTwvEPb7`H&>i(hU9#O%To^*&W-r8;=k-KRWIYiKbC49@)BI^TvFNeuFtUS&B@{) zeTrqd``ui{PlR)AcGB)Wl)qWv!Z8UQX`S0q8~(38&L(!AagK)y$KeT}jXgX(JO&mP z93id`WAu*y{eJ&^r?7f}*T)0Q{1ZG>3husQ7OwvGCNU$UBYl4DG!<@vC0_dK^Qa%p$>`Gc&*4uSLT~?*BL6r}m+LbX0%X=5Ob0&Aa*vzP-5_$#^5_Cf|eB56*|Dew3WD>e^&qtDKi! zg}hmeDY1OH^ZL`X zjE1*M1E=l%qnXZQeO02m?5?9koA4T>K<>B&(_$*`gU37{(z0bm1|`Vi0j9x z@Hm&f&x_YPV!>XpRFBtZflS7a)YwMj*Z&NEKiM$lY=eR zHP7~%@bcWntvkh+I<$*&CBGM%)_!B>W3KA5m?i70C#}0GGz?WD|sPM4+{yYs8p?>n_FcK3_dud_9hZ=1a=nRU3G zKeGYj{zukWM`t{-%J@YA%r)3VDone3NS<=Ipajs7mpozI6s%weOq}z^wmd?t$!Qyd{gbTJIox*dF<0uw)*$? z_EraKY`GY*>@WWglilARyKcC2uZ!n{6~~DeOfO5S;$A#&J&|IxV^`Dr-yfR|0Caw=#{lD`|#)U`Q)C56W!%9cgCIG^k~jeZq9|LMVpnU&*41%!?D9KGvi)z8r2gC^WwoCUt6OgP&3mu<3$IX~N5(0ZWj=~4TFcvh zgw4!qI^A|ZlyQgMm5RBar{B6`EYKqL_I2n}n>YdIxeRwCn4&aWpI7?$_!NA56PdUF zZ<*0dpI|{}O;@9tJ@Mw+lTSajD0;$?etzE45G~MY06z{gub6#%BEz0*Q72;*OB@ro zoc!2&%FJ4>H{0^*^(cj|ThXn|6-WE-J)M^S{f6%p|J_?nb8kMEJp5z(yl1D@L~zkBrLcK>7iJ!`f`U%Mfuk?k6M_KI9j z)XDPXDW~_w-d_%B@i%Rlhcv{n#dY$G;(bmNPpmoP8}nW%ulslS%7~5@H}(Q+vo-p$ zyN*oN4&U&0)vbb`pHiC?9^9*b|MbVl$E)*{Ihg(=Tx0Bsig=MLCbjipzR0pU$Jd7( zP+7fGw^Vma@rsY$qOVHp_X`z#{QCHbRol-K?)@9nkF)I4Gte3QUfUD9rswr8 z8H<93g$ot+;`g1owl+GsP?e8yZBCvW$BUhOj>$aB@7FEPylK3=@4WT4fSXh0_TS`7 zDAApAz-xx~3%$~RUZ=MkZmGSavtX;^`b545E8o}kpZ@=KbBN!3wU;|?^mXS(uHCxw zd3t+(sh!5s4LaQqA3of{ciYTjbpZqW!o-qgK8HeC7A98LPdYo7^FYFs&elZcp0iUv z?8$k<@$P-W#x=W)jtR6W^4tG0IDX&8?)9X#wlbIb6nD&It_VJqR!Z)wURd()X27P? z`Pr5~_Q^kIh+At>{qmCPy12c!1ek7Y(rIgJE0AeF+|Iv#SFZ(23AdEv9>x5$VujU@ zIF<%6PW4!Hc$LRO5g(qrD|!>RDGE>HIKBL5xcq;)+uP1g;9s^XbycY8T(*hAH;y=M zm|4m+`=-H#ua)(SlcyDFh&Xj!U*@5sRI734*U9oUV z((7w$&zw19U}NKxpPwK5x0LUJY1%#u=HGeNHtX-q49-7ieecZ;r{lebb8P>L{pK^# z-*4#TVE(OeW!<_hf1)hs^PbMAURW${xxV6^O!&VS{WGh6&G)q6)4YCohNqyx=03%QL%3?)&?y@>9K07|9&O) z9Q_&8w^>}T=={W``}gadestz%x5ddjdrE_0bwzjsU=lQnVa*JPHQf*R5C@3f}y}S0CdB&Nw zJA{5G_R7wStFCR|s=Vvl$NSt*8Sx8av@~D>EmYR6g zu7CBPQxE{HlJy~^1)4Cq#@NFM| zpEC>Cuky9D;*4+eow>!5vowy@zYZw=@W64>NtLKCqqTw3p79G2=n@ecO}na{K)e@uPx>pLtK;9B+^MJTLd$ zs_$>_Z$7KYW4dkYk7Hk=-pETQYfL{~sBtfBN6k;8>+52(3;vxux=CkU++HsMmNz#x zE`Iv&*FJxVHeK!mf)gjadNJYU>Gc5Y^6O8n)u-GdB-0Z<3zXk8b+MbV zqBVm}>871jxk}5G?6j@lll$kdEdOQb&(P~G!3$Q8_zmW|4=jqjOz;65cPwLSh%+3n8^=E4odeGkR?qHDfYbZnZYZy~LJ zx?G*@)UZ&%C0XIroPeRvXH*Y35e^r75=*_P)o9+!K%Za078?XxU1+8I~G zSYNAie_`|N`SYAd9=^`+|$_#0+PLk+P~+V=YJVvYyZLY9DDsr$3M9_ zUglHcIkq19rz5^NT;SOLlRKZD4&U+dYkt97|NqvjB9z`*Y1}>*7WVb?{bP5IzFote zCSR~pydij<{NBjY|3ZJaUA*O%-G1RlOQY|K+@5){#qaLTO+D{0sr6Zg`>C{DB4LN^ zcYi+p<=LB68~0zE|M2tUjJ1^?7P4EGy^%Q9t)zQlo6Ui<74OZsm-5tqnzrnU%Zt3W zwp%Y#-Hoceg-)&lX{Q_Qb?+O}IRxlRupJQes@3 zEVEd9$2S%0^4P^P)3TXZ9YS^boE{k~e|mq5?@smm#C7|M znX*6c6WxCMLi@tPd&Tb`KC`Uz?a+)}TJzLX%h=pQMe2E__3^r&pPp9oIVLB(Z*=~A z&i41Y=+AxT*4JKr-1+F$fddT9&CR*;#Y=+}19ckMrU^)w?qdJ_!vCRMmA%&GR$~+O zCB<)R_CJ|y_2EO)*C}m!W>eyKIC@lcPJ3T|dE+zxHC8NNvgLoXtV?}t>9^H?Vzx=y z=k5H-XZB=Ycy&vTh0#%>;OVKUKWxKAJ#PiB7iC-hD_Mt!?^fA`V~SV!ZWVHt`f~8C zzHQCEO;0c5Te;PlDNbgkRu;Z?_iQbfKU|&rBKz$~2|vXjEWCT-%0v`}6+gpHE#sw@Ll8 znWg%Xpa4U&Q{R3(sAa#oac8^BA}P(pxEB@4FW$URnf+00@9{(dqsj9hURvsXHG895 z(hlfI&6XyP1CWGvXqVDdua7h1fARF&|FhT`vo6s&G}~8zWr~;TvgONX&YAP%{{Ndl zE=~0Itqu;?TdtR!P*5=8{-2lkmu%iVIY!UjXy%%(=F>cxmgRfW&&^59%37tmG3D|y zUmrieO_`U~^kQ~wSX2D%&CSDCSBJlR|31F3`j|w{?PuY2Ps4BQudnxh-2aNRiQ)ct zO|kBny=A@k|D9s}l%?HzVZl_VOxI=WrB4@1*!~x@E)(U@Jin_xd*S@md2yki;nueAN)X^o6QD@E45eq`b2-Q=*j@}2zeP=mIF zN4zKIAMiEdT)j4D%{=)BcZ^X60;^EUtbUzclMILl}Ko}sR;u37so zd^*obnI*qG|K5>L{C=gi9u#|n>Wt;bu~VEDnpK@>#@%PUZJj5*UVbhuZ(TJ|EKrc+PCq4Uxh!; zF8J_H`ios5$J8x>)10O|`xq)ntPPOV3*H%}!eg_gkhAdOE#(p!r?s5U%MbG2>G6%# zd*3%j^3C^xIX|zjTz}Xtax?!PpP2c}rs!`jeH~W!EWNG`G&%6^U)`mbB|0qn>2tHo z-tYhVWuxo+T8XwLp(py^ZT)$rZraXyQ4*7vh7@T`->o^->qp(yz_%8B^PWGn;5(UO zR2FyssKnuBe!COD=T)R!tj_64OiOEf-e-IK{r~Crmq%#nEv|o+H;Kq-L!@r}lnd}$D=ml$t%$PAlfum{Z(dHXFZ^|i&zX(cgQb>|KW6?P?C zD~RpI#q=AyzvrDfa8Pu6bhseT^oz;<=A!khT^HGfxX%4Er}Ex|LotlS$LF1Y{@l7@ z=Ksp|<(cMvOMc$kaO?3giBCUk4&TYUK0{qiZNv14>rC;F>z)|%KFW8le>~yb=7&}3 z^L}fuNfFz=nEUis11lAcCz|oQ9X`&~zmRAyeppJ|?1!Vn%A>#U=B%j`NZ50g^FY{> zka*_f?_+%4N^L35J^%dk$7)$-$u%+If3{C$yOi+V=@G*WFNddhELw$wTSVty;JR>3 z*+ecegM+#JqG{fS>kq$v-cVl5bbMa?g^h|YudI(2o9@R~{NSH#&fQ&8y{GFvwBTDB zwDKV1zDtJwK0W~}L#Ca9x07Iv|(4@&24uTBJ{7UGi>u(x@k@I zn_YVLUmE2X#b|x5-v7Ni!q@p3e2@w;rFPd~NA3i7`PwNpcK!l-`G?KR()HXK@+NEN z>|`p~?VI7HdB~v0_2Se8Tl2J*G2W?6ziRs9m~_60jJ^mLx7Ctqhc@XPGU##6+2%Dx z{_?iBH}-x#@b7HR_d}j)rTP-wvM+Yb;j7ItcbRRl&%f)H#Hw@mkG6Jsyy=Y#Z@2r+ za4<(AW5Wi+TMs|YF8{EQz3k|@O&$pu)fN}3K9(=6PO4!md-v?@^!=-9c{A;Jcu?8K$HlAV)&le(h5{$9P91`2Xs-Ke;6hvu>q)nj@kf=l}8FTmFl8 zZ%Vea_a2#e^@+(`>+{)-%b)MfJGPhK_Qc-zu@?7Vf3gx3nDgh+p?vd~-q!DmFK;|w z${>AX^Z&le=X33=C)xg%>Ys02n-q7`wST_l!FPMvpLc$L?l(U}i(&oM8QK2QIvOY1 z8skiseEy>CpX^w(?|I~s&758D_Z_&>na)wuyGgXO#aZw1M89f_ZBbzyFMbqXI&?!k z>aciG+&5vz2W zKHT}HJ=N>-?z%lvX76?vaU^2`jTaLo4a@CI}Nwlt+5+#8GL@jq&T--FQDcZ_me4E7WOksHs-n- zy%dsaX0_;ReSGuAwyieo>&y=PsoogGxZ~rTSNY4gm%sdWoiTBv!V_g{dV!>A3`5{H$zCQl{ORj2L$;9)|cNRQk0^Kj7 z!>~SOZS?x2_eBxsY`-z@e|s(i+;?JejNpZLi(hvgHH#3xRS;hkY+1G6_xHJt0y{!x zhW*;*A?u~tq>!AW&eyiQuXs<5zUTI4Csh>=;h6n%mP|OG zpqhR`jV1Y&%-pLA7q04^k(>QD|Lakk@a!iXW)E&^E>ll<^CPhC+rr%*s*`hz|GPcc zQ{i$uwEAM&ybjrg>uV)z-=5apzW>(YCBM4}7(#=AU$C z`p5fr-P=T>Zr(WNq}_T^yIw$L@`lI%Ecy<&a*J2I+xgt0;)BAx=b@|#*&l6o6-U0X zTI(KIvGM%(r2lrXMTcKo;HkN7iQVy4aS`e(gY&tL#}*uaiT2qKANv zzI%~zpPcQj58r#G&87O>rEgyR820h+H_JtfvNNp9-pqLY^3|i`axyCa-<+PKd)L|Q zqUX}h-Je3Hg~#1F=j`tjcqO=yFG0jqzrdxKvEbX?Sudpjhb@^SV;tO8tiP{)e)R*x zs$IJZVzgK3?-bcJDs!y-Esfo&YkDOD+DY*xsN=sUb@<>~y50V}Tx z8y@@cXr_?+cQtXn?L2Wd!K=0{KeNcP;rX}av3eW3;uSfXA{g>gAJ=4LWZXO+zS%JT zqxQ#TmDVx`0&OR9OC$v6>;L~Hcs73T2QGE)_LuM9ANpZk@pvlJciRfV+uDLNi~{)* zod4ElmoQvbcyqmTf5TE4qdfEL>%(^ZyA@dXZQt=5S8jVNP3*Y4e_}?!d#QP+i(DS= zynbTS+F7@+AF=mtRfw;C^=r|p+MfH7OQp?}#AZC>ILkbnJ^b>=Ycn68o2%Wh_8Oy1 z;!Uw>OAVs*qvDO8CRvM}oYH)ajl1=2l*PK<-0gBrHGx~!eOr6<_uAe(joVrB>BrnW z(>Lc>7EH(v*PkrE-_ia5vuUrgrv5VAvT2+9mFJh%+O61B#9pvfso>pz$3y?WhDV%o z)8_Wp>{)7XD>g8++H7}W{kQk`&o4aOej;ttjcu{DE7Ys}5?R0J-?LfIt-Lpm^}#Rp z8AljltG-R(YnQKyr#t`==rX!ZQCK}`80FNwC#ciz68ar@%muxYV-k9J=P=Y5&;aHsE` zx!EOqd)QKM-tfNjzV+G9L)jHyf4ul$dPpH=ll-=CAI*3TO8#1PhRo`eR_2M{yXn!# zH7vI`zP!7|@?G}s>t(URe|S9&I5&jvi(UNdTVnpbM!9`GOLKZce_!Ma{P%e&hv|)V zqV7=zvEt{yCVeblx^VvUuN%$IujaQ}^ZtDKmE);vv%CM?c7--*@>t#bu83WvOCHjX-W0+*?xbgIN3AY+3q^0(rVe{%^wb3 z{1J2AwfgRlqe^9mj?ReIpCOTKaO$YO$i;hWB<#Xf|r^w=bSrF|F6I zEoo)TMJbU&i6>z*tj`<2niRd}jHAi+xmL?(rbg~q=e;u~kArdVm7UwU zZg0~R;o33pw!y!$*54ssi8sa86-mF^o&8_Wti1Qb+sV&=zS~{!=tmmYPnG_E4{nz{ zU8dO<%(AP=tnTpFty8;mcka;YOjp0S@X@V+M&tF%Z)V;*?0>(`n)&Zvm0(YyIHvQT zXZ5YkU2*gGI}5(aclnKqzRKUMEYP1(sF3p2-+0ZU;xeYwFVmjD`6dow>Iw;+n+w{mo@#W0NXcxbE8D==%Mi zx9^?4(0u=ib$e$U{Pg6|-mdq4b5KI{3Lo|9=X)OA|E%$H*YCZP3Jw%s-=dLUCc)N{ zc)+JFEi(4gCd;nL!acmP$I5JjWMh5K`)s#4GF70>@vHKK8@lUr3;jObvbnz{Q+WNp zUt0aP-z1*yEf0=3YjeM-qw#mNz3i&bHWNKQJnGipRQmc_#Glx;zqi-L7Rye*cP}rl z@@uKx4`ulUK`YlxKEM6A_WFH(_4WMg9_v-lyZ`Ea478CnqZ?k8?@Br;Q@xeR4<~Mex3tzJ;e36m7qu`xYb0_Dq<6285t!%UD*H#tc%sGDSd#z9>OQ%Z` zZ`D1iv&TeQjeGCJt>)#u(-YzGVbxFF#UFMuANW1llP`b&!I$33dx|9gee=&tzI`zJ zPGL&NJUfqNLN2kF5aqm!PZjg7iy7{*n_lGa&wu~#yYio(_y6#&`|$UD^5tcXt1>FMIhrRteE8bt>lO1E zb7npJ_xpYRi)?F`gxlLLMj7wSRM&qUJH>zR>2QCc$} zJULnZWA^@^)pGTJ1kG|^^?%-dKc`6{p`v2O^Lf>c7cUyV+wqv;=bum4w|<>*8aj>o z`0p+35q@rzk-VOped1E5veGA&Z~VB=zwSEh;GP`8 zd1_WE>#|9jyLRpRalHPIyVg{$TQ5p?KFo=}`eEMQy?a&m9LbT$S^bwOOhqNqlUu#u zQRPG*HP7XjdA@utJfF*&*VAigH1WYFd;Wq`cNQf1Cf;F^Xf@LFw0gP4>c+&k>GA36 zwdG$YcrN!`emTWRGH9hpU+~)dWofbVvpYAfN-nk)*Pob_bo+S4!&|H8?EED*Z=O?O zwiC0o4Aa$zfS~-8~rW3m( z^K$l1|1y#N#uSeSR(Z|JC8}4}X9foc^W@zN-Q1p!JEBYu|q=K2PMdgc-`GEY7{Jp9pFf7;!71}DD0j#7HKvHE-2 zx){kv-toVpxsE>46%1NjxcsuF(M%ERa=v4Ma#3@i!v^D42bSNhz5eUAp%A2Q>aW@}%acpEijS#}-b^Kgwn#@VxD8icv{P*@de& zuWqQ^cZv5)#-2ubfwn}Odqq2?_{wc}_Puict|ru3@n>7^;~nQ_buYWP)!>!@3u9Ea z)>N*iMKhB&N<8=bRy$vT$Ivu9T4lwKb<+Qr1Zhq>sj}|%v82!`ufL~R8ZQ3W;^?t5 zWKoFL(Z?Kz4bIK1-2ATIJh!qx{H&0G_=*erH_#+#{Ltutpzavf!wTBIuX z{p>k$sk4H&w|x|ndl@n-$4q)R^KHv#3LGm!w0e5`4NWawH-_}szYg5_Q+@repOr4j zU3QmOhIIAy@l{n-eXv>olwI-Jy3F9q!E?8ZB1|DSNZa`&olx_kN?u02-|Io9f(f3f_Y?Uqab zT$8&F-770EoqYP)iV!Up$AZ(xt*3j~bi^iawV7|edH$&&i*?Nx*^U=_s7)>@D>LJ0 z|607XuGoH8`o-*}Av%BD?!3v)yD4@uMdSpZHgX8rruVee-p0954)|~mOruEqGg35hz|NbgM)N-l$}rQ(>?39&e59TeGut&GC(TF4pTE zSHCsy*q&9`_%iH!x#G3gG5N>8Mg=K^mhRl2`+8b`?YkM#f)&#*AKQQBx9xVl8xh%2 zF1xRH{g|h1{5zo4>_%B}`$s3I)ZIHIvmbsxYy;hW))L*hc7oHK^wCwDrW!Dd_vU(ye z)G&K*p1INa>+AMFLS12vYE<@|pp`CGbN5}Xg?8jw91dx4H7Rg79dWBqc>0@lCqJZE zIaIYML@TkkzyJQLI%se>_2eu9DQ(&?aYFrWsNn0)j~@%?T$En?<;#}|UQ6>z>mh|u z%lqO*ydgI|L?K)V*)layM@(|BVOMg`!#_Jezqz+L+69^u9$s4v?O`P{EB-Hoy6zg| z(WHr=pPx(aImq~-cK+q}bCzviKmFaiyh$fjrlsC}RR?yD0>}MyiR2Bs(Pn|*N%I>9 zH>TCD-VOD2&HP1MmxX8<+S#3Z(R;DN|LuSFoTc{RbN&d$fldndboFyt=akR{0QQR} A*#H0l literal 0 HcmV?d00001 From 8f00b0ccf3788bc85884546a6b7f601411c8383e Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 16 Jan 2023 20:07:41 +0000 Subject: [PATCH 032/228] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5188028..69bc4c6 100644 --- a/README.md +++ b/README.md @@ -56,11 +56,9 @@ The following will happen: - Create a encrypted LVM at `/dev/***2`. - Create a swap partition in the LVM and sets it as the same size as the RAM for hibernation if requested. - Create a root partition in the LVM. -- Install systemd-boot. +- Install systemd-boot*. -## Screenshots - -![GNOME Installation](Screenshots/pinebook-pro_nixos.png) +* Pinebook Pro is using GRUB currently. ## Roadmap From 8104975a06cf5b7026cdbb60b9dcb52c66e74ac8 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 16 Jan 2023 13:34:57 -0700 Subject: [PATCH 033/228] Updater README --- README.md | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 69bc4c6..dbe1560 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ nix files are from [this repo](https://gitlab.com/ahoneybun/nix-configs/) but th Tested on the following drives: - SATA - NVMe +- eMMC Tested on x86_64 machines. @@ -34,17 +35,24 @@ Prerequisites: ## Connect to internet +```sh +> add_network +0 +> set_network 0 ssid "myhomenetwork" +OK +> set_network 0 psk "mypassword" +OK +> set_network 0 key_mgmt WPA-PSK +OK +> enable_network 0 +OK +``` + https://nixos.org/manual/nixos/stable/index.html#sec-installation-booting-networking ## Start the installer -``` -curl https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh > install.sh; sh install.sh -``` - -or - -``` +```sh sh <(curl -L https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) ``` @@ -58,7 +66,7 @@ The following will happen: - Create a root partition in the LVM. - Install systemd-boot*. -* Pinebook Pro is using GRUB currently. +* Pinebook Pro is using GRUB currently and that is in the main-pbp branch ## Roadmap From 709a11d8bfa63188ef120806d6ac58ad9b60b35c Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 16 Jan 2023 13:38:48 -0700 Subject: [PATCH 034/228] Update and clean up README --- README.md | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index dbe1560..f469332 100644 --- a/README.md +++ b/README.md @@ -58,19 +58,28 @@ sh <(curl -L https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) The following will happen: +### x86_64 - main branch + - Clear partition table for `/dev/***`. - Creates a GPT partition table for `/dev/***`. -- Create a 1GB EFI partiton at `/dev/***1`. -- Create a encrypted LVM at `/dev/***2`. -- Create a swap partition in the LVM and sets it as the same size as the RAM for hibernation if requested. -- Create a root partition in the LVM. -- Install systemd-boot*. +- Creates a 1GB EFI partiton at `/dev/***1`. +- Creates a encrypted LVM at `/dev/***2`. +- Creates a swap partition in the LVM and sets it as the same size as the RAM for hibernation if requested. +- Creates a root partition in the LVM. +- Installs systemd-boot -* Pinebook Pro is using GRUB currently and that is in the main-pbp branch +### ARM64 (Pinebook Pro) - main-pbp branch + +- Clear partition table for `/dev/***`. +- Creates a GPT partition table for `/dev/***`. +- Creates a 1GB EFI partiton at `/dev/***1`. +- Creates a 4GB Swap partition at `/dev/***3`. +- Creates a root partition with the rest of the space at `/dev/***2`. +- Installs GRUB ## Roadmap -- [ ] +- [ ] Merge ARM64 and x86_64 together into one branch # Possible Ideas From b9f6020df85df10a4086e542e03e265e571ce7c2 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 17 Jan 2023 22:15:36 +0000 Subject: [PATCH 035/228] Update README.md --- README.md | 51 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index e29351e..a4c73e3 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,9 @@ nix files are from [this repo](https://gitlab.com/ahoneybun/nix-configs/) but th Tested on the following drives: - SATA - NVMe +- eMMC + +Tested on x86_64 and aarch64 machines. This sets the hashedPassword to my own so you will need to update it to match your own as well as the username. I created the hash with this command: @@ -32,34 +35,52 @@ Prerequisites: ## Connect to internet +```sh +> add_network +0 +> set_network 0 ssid "myhomenetwork" +OK +> set_network 0 psk "mypassword" +OK +> set_network 0 key_mgmt WPA-PSK +OK +> enable_network 0 +OK +``` + https://nixos.org/manual/nixos/stable/index.html#sec-installation-booting-networking ## Start the installer -``` -curl https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh > install.sh; sh install.sh -``` - -or - -``` -sh <(curl -L https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) +```sh +sh <(curl -L https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main-pbp/install.sh) ``` The following will happen: +### x86_64 - main branch + - Clear partition table for `/dev/***`. - Creates a GPT partition table for `/dev/***`. -- Create a 1GB EFI partiton at `/dev/***1`. -- Create a encrypted LVM at `/dev/***2`. -- Create a swap partition in the LVM and sets it as the same size as the RAM for hibernation if requested. -- Create a root partition in the LVM. -- Install systemd-boot. +- Creates a 1GB EFI partiton at `/dev/***1`. +- Creates a encrypted LVM at `/dev/***2`. +- Creates a swap partition in the LVM and sets it as the same size as the RAM for hibernation if requested. +- Creates a root partition in the LVM. +- Installs systemd-boot + +### ARM64 (Pinebook Pro) - main-pbp branch + +- Clear partition table for `/dev/***`. +- Creates a GPT partition table for `/dev/***`. +- Creates a 1GB EFI partiton at `/dev/***1`. +- Creates a 4GB Swap partition at `/dev/***3`. +- Creates a root partition with the rest of the space at `/dev/***2`. +- Installs GRUB ## Roadmap -- [ ] +- [ ] Merge ARM64 and x86_64 together into one branch # Possible Ideas -- [ ] +- [ ] Install nix-channels such as `nixos-hardware` and `home-manager` after install. From 0ec8fb9fad80097ff5555d741eec59b03dac6eae Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 17 Jan 2023 22:15:38 +0000 Subject: [PATCH 036/228] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f469332..43abd04 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Tested on the following drives: - NVMe - eMMC -Tested on x86_64 machines. +Tested on x86_64 and aarch64 machines. This sets the hashedPassword to my own so you will need to update it to match your own as well as the username. I created the hash with this command: From 21d82763203777404f70213a1887c4b6c28fa682 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 17 Jan 2023 22:16:27 +0000 Subject: [PATCH 037/228] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 43abd04..2ccab19 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,9 @@ Tested on the following drives: - NVMe - eMMC -Tested on x86_64 and aarch64 machines. +Tested on the following architectures +- x86_64 +- aarch64 This sets the hashedPassword to my own so you will need to update it to match your own as well as the username. I created the hash with this command: From a4d929ac826995e2058ed8b4acba186d759d5176 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 17 Jan 2023 22:16:37 +0000 Subject: [PATCH 038/228] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a4c73e3..4b2b41d 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,9 @@ Tested on the following drives: - NVMe - eMMC -Tested on x86_64 and aarch64 machines. +Tested on the following architectures +- x86_64 +- aarch64 This sets the hashedPassword to my own so you will need to update it to match your own as well as the username. I created the hash with this command: From 8dfea142a61193fb02e865e5d254e9d018d500d6 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 17 Jan 2023 22:17:30 +0000 Subject: [PATCH 039/228] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ccab19..1f0e07f 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Tested on the following drives: - NVMe - eMMC -Tested on the following architectures +Tested on the following architectures: - x86_64 - aarch64 From 160d5135d031b358e6a309ad98071b3d18d8b861 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 17 Jan 2023 22:17:47 +0000 Subject: [PATCH 040/228] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4b2b41d..2fc56b8 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Tested on the following drives: - NVMe - eMMC -Tested on the following architectures +Tested on the following architectures: - x86_64 - aarch64 From aedc3fee8c6be4c565491552cbf0a4583d6210ba Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 23 Jan 2023 20:51:39 +0000 Subject: [PATCH 041/228] Update install.sh --- install.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 2e88b6a..20996e1 100644 --- a/install.sh +++ b/install.sh @@ -122,15 +122,20 @@ read desktopChoice # Update the second command to the file name that matches your DE/WM .nix file if [ $desktopChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix else if [ $desktopChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix fi +if [ $desktopChoice = 3 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/pantheon.nix > pantheon.nix; sudo mv -f pantheon.nix /mnt/etc/nixos/ + sudo sed -i "10 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix +fi + fi echo "" From 68c4914d01c67b36b0c83aa28f9eb08fcb8adcc0 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 17:11:55 +0000 Subject: [PATCH 042/228] Update install.sh --- install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install.sh b/install.sh index bfdc52e..533dd0e 100644 --- a/install.sh +++ b/install.sh @@ -22,6 +22,10 @@ echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. echo -4G # Set last sector. +echo n # Create Swap partition +echo # Set default partition number. +echo # Set default first sector. +echo # Set last sector. echo t # Change partition type. echo 1 # Pick first partition. echo 1 # Change first partition to EFI system. From bf04a0badca8928be4780c0bf352f7912dc90379 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 17:13:55 +0000 Subject: [PATCH 043/228] Update install.sh --- install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 533dd0e..14d2bd4 100644 --- a/install.sh +++ b/install.sh @@ -130,11 +130,12 @@ else if [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "10 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix else if [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > pinebook-pro.nix; sudo mv -f pinebook-pro.nix /mnt/etc/nixos/ + sudo sed -i "10 i \ ./pinebook-pro.nix" /mnt/etc/nixos/configuration.nix fi fi From cd61733b7b622a8dd460c4bc1a9e8507eaa9e00d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 17:15:13 +0000 Subject: [PATCH 044/228] Update install.sh --- install.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/install.sh b/install.sh index 14d2bd4..db63359 100644 --- a/install.sh +++ b/install.sh @@ -106,8 +106,6 @@ else if [ $desktopChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/pantheon.nix > pantheon.nix; sudo mv -f pantheon.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix -else - fi fi From 7e5eb4f22807291e08521e6fa603209dcde17efd Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 17:16:26 +0000 Subject: [PATCH 045/228] Update install.sh --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index db63359..449686c 100644 --- a/install.sh +++ b/install.sh @@ -101,7 +101,7 @@ else if [ $desktopChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix -else +fi if [ $desktopChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/pantheon.nix > pantheon.nix; sudo mv -f pantheon.nix /mnt/etc/nixos/ @@ -129,7 +129,7 @@ else if [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix -else +fi if [ $deviceChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > pinebook-pro.nix; sudo mv -f pinebook-pro.nix /mnt/etc/nixos/ From 8da4b82c810a9f9efd539c3bcadd14a3b83d399e Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 17:21:25 +0000 Subject: [PATCH 046/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 449686c..7526b4b 100644 --- a/install.sh +++ b/install.sh @@ -79,7 +79,7 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" From 74909e63e47ce4b2322a28700341d8f24dfb5564 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 17:29:27 +0000 Subject: [PATCH 047/228] Update install.sh --- install.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/install.sh b/install.sh index 7526b4b..8de8c49 100644 --- a/install.sh +++ b/install.sh @@ -63,9 +63,6 @@ sudo e2label $rootName NixOS sudo swapon $swapName sudo mount $rootName /mnt -# Unmount root -sudo umount /mnt - # Mount the EFI partition. sudo mkdir /mnt/boot/ sudo mount $efiName /mnt/boot From 4f9cfac60728f3b3c300e1745899074ada22d941 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 17:52:47 +0000 Subject: [PATCH 048/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 8de8c49..14f8c90 100644 --- a/install.sh +++ b/install.sh @@ -76,7 +76,7 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main-pbp/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" From 64aaa67037d59bac8d97f8b0826da39bc9428131 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 18:09:29 +0000 Subject: [PATCH 049/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 14f8c90..8de8c49 100644 --- a/install.sh +++ b/install.sh @@ -76,7 +76,7 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main-pbp/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" From 06749e0a58200c126cefc7de1640f12d0de3e4b7 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 18:13:23 +0000 Subject: [PATCH 050/228] Update install.sh --- install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install.sh b/install.sh index 136f3d0..79aa886 100644 --- a/install.sh +++ b/install.sh @@ -21,6 +21,10 @@ echo +1G # Set +1G as last sector. echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. +echo -4G # Set -4G as last sector. +echo n # Create new partition (for root). +echo # Set default partition number. +echo # Set default first sector. echo # Set last sector. echo t # Change partition type. echo 1 # Pick first partition. From 381d729d46f8a5619263f657623d0213d8f0a716 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 18:24:12 +0000 Subject: [PATCH 051/228] Update README.md --- README.md | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/README.md b/README.md index 1f0e07f..9d7a694 100644 --- a/README.md +++ b/README.md @@ -60,18 +60,6 @@ sh <(curl -L https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) The following will happen: -### x86_64 - main branch - -- Clear partition table for `/dev/***`. -- Creates a GPT partition table for `/dev/***`. -- Creates a 1GB EFI partiton at `/dev/***1`. -- Creates a encrypted LVM at `/dev/***2`. -- Creates a swap partition in the LVM and sets it as the same size as the RAM for hibernation if requested. -- Creates a root partition in the LVM. -- Installs systemd-boot - -### ARM64 (Pinebook Pro) - main-pbp branch - - Clear partition table for `/dev/***`. - Creates a GPT partition table for `/dev/***`. - Creates a 1GB EFI partiton at `/dev/***1`. @@ -81,7 +69,7 @@ The following will happen: ## Roadmap -- [ ] Merge ARM64 and x86_64 together into one branch +- [x] Merge ARM64 and x86_64 together into one branch # Possible Ideas From 061e3f57a7bf1213640a7bfcf01632bfe581e50b Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 18:27:39 +0000 Subject: [PATCH 052/228] Update install.sh --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 79aa886..3e027c3 100644 --- a/install.sh +++ b/install.sh @@ -129,8 +129,8 @@ if [ $deviceChoice = 2 ]; then fi if [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > pinebook-pro.nix; sudo mv -f pinebook-pro.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./pinebook-pro.nix" /mnt/etc/nixos/configuration.nix + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ + sudo sed -i "10 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix fi fi From 33437304820a356f87e43f6a724c8eb4e44e6573 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 19:39:06 +0000 Subject: [PATCH 053/228] Update install.sh --- install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 3e027c3..1d0ae7e 100644 --- a/install.sh +++ b/install.sh @@ -129,8 +129,9 @@ if [ $deviceChoice = 2 ]; then fi if [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ + #sudo sed -i "10 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix fi fi From 77d0feb8f03d0c5c5cdf18033442255ec61866ef Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 25 Jan 2023 20:11:33 +0000 Subject: [PATCH 054/228] Update install.sh --- install.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 1d0ae7e..2c52f06 100644 --- a/install.sh +++ b/install.sh @@ -92,17 +92,17 @@ read desktopChoice if [ $desktopChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "8 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix else if [ $desktopChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "8 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix fi if [ $desktopChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/pantheon.nix > pantheon.nix; sudo mv -f pantheon.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "8 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix fi fi @@ -120,18 +120,18 @@ read deviceChoice if [ $deviceChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/oryp6.nix > oryp6.nix; sudo mv -f oryp6.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "9 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix else if [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "9 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix fi if [ $deviceChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ - #sudo sed -i "10 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix + #sudo sed -i "9 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix fi fi From 58fc58512998362b9e4478edd667a93e828b5dfe Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 26 Jan 2023 17:10:33 +0000 Subject: [PATCH 055/228] Update install.sh --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 2c52f06..819a5fc 100644 --- a/install.sh +++ b/install.sh @@ -129,9 +129,9 @@ if [ $deviceChoice = 2 ]; then fi if [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ - #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ - #sudo sed -i "9 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix + #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ + sudo sed -i "9 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix fi fi From a08a2f6610706e5a44e19beab19cb69a7de1d74b Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 26 Jan 2023 17:17:31 +0000 Subject: [PATCH 056/228] Update install.sh --- install.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 819a5fc..0f3de0e 100644 --- a/install.sh +++ b/install.sh @@ -92,17 +92,17 @@ read desktopChoice if [ $desktopChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ - sudo sed -i "8 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix else if [ $desktopChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo sed -i "8 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix fi if [ $desktopChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/pantheon.nix > pantheon.nix; sudo mv -f pantheon.nix /mnt/etc/nixos/ - sudo sed -i "8 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "10 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix fi fi @@ -120,18 +120,18 @@ read deviceChoice if [ $deviceChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/oryp6.nix > oryp6.nix; sudo mv -f oryp6.nix /mnt/etc/nixos/ - sudo sed -i "9 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "11 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix else if [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ - sudo sed -i "9 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix fi if [ $deviceChoice = 3 ]; then #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ - sudo sed -i "9 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix fi fi From a1fe95bb8367138f4d9f59e53416333f3b407087 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Sun, 29 Jan 2023 22:41:43 +0000 Subject: [PATCH 057/228] Update install.sh --- install.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 0f3de0e..c9e1b03 100644 --- a/install.sh +++ b/install.sh @@ -110,8 +110,9 @@ fi echo "" echo "Which device are you installing to?" echo "1) Oryx Pro (oryp6)" -echo "2) HP Omen (15-dh0015nr)" -echo "3) Pinebook Pro" +echo "2) Galago Pro (galp3-b)" +echo "3) HP Omen (15-dh0015nr)" +echo "4) Pinebook Pro" echo "0) None or N/A" read deviceChoice @@ -124,11 +125,16 @@ if [ $deviceChoice = 1 ]; then else if [ $deviceChoice = 2 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/oryp6.nix > oryp6.nix; sudo mv -f oryp6.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix +else + +if [ $deviceChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix fi -if [ $deviceChoice = 3 ]; then +if [ $deviceChoice = 4 ]; then #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix From 7ed4fe5918bdc411087db60e2b49d3c3fe5115a6 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 30 Jan 2023 19:17:59 +0000 Subject: [PATCH 058/228] Update install.sh --- install.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index c9e1b03..2b97308 100644 --- a/install.sh +++ b/install.sh @@ -111,8 +111,9 @@ echo "" echo "Which device are you installing to?" echo "1) Oryx Pro (oryp6)" echo "2) Galago Pro (galp3-b)" -echo "3) HP Omen (15-dh0015nr)" -echo "4) Pinebook Pro" +echo "3) Galago Pro (galp4)" +echo "4) HP Omen (15-dh0015nr)" +echo "5) Pinebook Pro" echo "0) None or N/A" read deviceChoice @@ -125,16 +126,21 @@ if [ $deviceChoice = 1 ]; then else if [ $deviceChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/oryp6.nix > oryp6.nix; sudo mv -f oryp6.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/galp3-b.nix > galp3-b.nix; sudo mv -f galp3-b.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./galp3-b.nix" /mnt/etc/nixos/configuration.nix else if [ $deviceChoice = 3 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/galp4.nix > galp4.nix; sudo mv -f galp4.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix +else + +if [ $deviceChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix fi -if [ $deviceChoice = 4 ]; then +if [ $deviceChoice = 5 ]; then #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix From 0b9ff8eafc224ec7717105b7b2859070efae7049 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 30 Jan 2023 19:43:14 +0000 Subject: [PATCH 059/228] Update install.sh --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 2b97308..b2df964 100644 --- a/install.sh +++ b/install.sh @@ -128,12 +128,12 @@ else if [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/galp3-b.nix > galp3-b.nix; sudo mv -f galp3-b.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./galp3-b.nix" /mnt/etc/nixos/configuration.nix -else +fi if [ $deviceChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/galp4.nix > galp4.nix; sudo mv -f galp4.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix -else +fi if [ $deviceChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ From eb1e50aceaa3c23128dfe4af939b9af238380652 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 28 Mar 2023 18:52:55 +0000 Subject: [PATCH 060/228] Update install.sh --- install.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install.sh b/install.sh index b2df964..d7129ed 100644 --- a/install.sh +++ b/install.sh @@ -56,8 +56,7 @@ read swapName sudo mkfs.fat -F32 -n EFI $efiName sudo mkswap $swapName # swap partition -sudo mkfs.ext4 $rootName # /root partition -sudo e2label $rootName NixOS +sudo mkfs.btrfs -L root $rootName # /root partition # 0. Mount the filesystems. sudo swapon $swapName From 967bf36bdefc344a64bba9098a093296a90deacb Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 28 Mar 2023 19:02:08 +0000 Subject: [PATCH 061/228] Update install.sh --- install.sh | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index d7129ed..50cb081 100644 --- a/install.sh +++ b/install.sh @@ -58,13 +58,24 @@ sudo mkfs.fat -F32 -n EFI $efiName sudo mkswap $swapName # swap partition sudo mkfs.btrfs -L root $rootName # /root partition -# 0. Mount the filesystems. +# Mount the filesystems. sudo swapon $swapName sudo mount $rootName /mnt +# Create Subvolumes +btrfs subvolume create /mnt/@ +btrfs subvolume create /mnt/@home + +# Unmount root +sudo umount /mnt + +# Mount the subvolumes. +mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt +mkdir /mnt/home +mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home + # Mount the EFI partition. -sudo mkdir /mnt/boot/ -sudo mount $efiName /mnt/boot +mount --mkdir $efiName /mnt/boot/ # Generate Nix configuration sudo nixos-generate-config --root /mnt From df9711b88bf3141c826cec008f703f72b06def61 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 28 Mar 2023 19:04:12 +0000 Subject: [PATCH 062/228] Add sudo --- install.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 50cb081..26eedda 100644 --- a/install.sh +++ b/install.sh @@ -63,19 +63,19 @@ sudo swapon $swapName sudo mount $rootName /mnt # Create Subvolumes -btrfs subvolume create /mnt/@ -btrfs subvolume create /mnt/@home +sudo btrfs subvolume create /mnt/@ +sudo btrfs subvolume create /mnt/@home # Unmount root sudo umount /mnt # Mount the subvolumes. -mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt -mkdir /mnt/home -mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home +sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt +sudo mkdir /mnt/home +sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home # Mount the EFI partition. -mount --mkdir $efiName /mnt/boot/ +sudo mount --mkdir $efiName /mnt/boot/ # Generate Nix configuration sudo nixos-generate-config --root /mnt From ccade8a217505a68d4beb9b1426fa6ad0899c9fe Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 28 Mar 2023 19:08:50 +0000 Subject: [PATCH 063/228] Update rootName --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 26eedda..7b57a9c 100644 --- a/install.sh +++ b/install.sh @@ -70,9 +70,9 @@ sudo btrfs subvolume create /mnt/@home sudo umount /mnt # Mount the subvolumes. -sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt +sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@ $rootName /mnt sudo mkdir /mnt/home -sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home +sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@home $rootName /mnt/home # Mount the EFI partition. sudo mount --mkdir $efiName /mnt/boot/ From 950e2ef11a93d4c329a796a7693cc12f7b4aa221 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 29 Mar 2023 14:18:13 +0000 Subject: [PATCH 064/228] Update @ subvol name --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 7b57a9c..320af78 100644 --- a/install.sh +++ b/install.sh @@ -63,7 +63,7 @@ sudo swapon $swapName sudo mount $rootName /mnt # Create Subvolumes -sudo btrfs subvolume create /mnt/@ +sudo btrfs subvolume create /mnt/@root sudo btrfs subvolume create /mnt/@home # Unmount root From c477296da56025e2a9f7071ce791c21af2d8d45e Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 29 Mar 2023 14:23:13 +0000 Subject: [PATCH 065/228] Add Sway --- install.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/install.sh b/install.sh index 320af78..c7f4bab 100644 --- a/install.sh +++ b/install.sh @@ -94,6 +94,7 @@ echo "Which Desktop Environment do you want?" echo "1) Plasma" echo "2) GNOME" echo "3) Pantheon" +echo "4) Sway" echo "0) None or N/A" read desktopChoice @@ -115,6 +116,11 @@ if [ $desktopChoice = 3 ]; then sudo sed -i "10 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix fi +if [ $desktopChoice = 4 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/sway.nix > sway.nix; sudo mv -f sway.nix /mnt/etc/nixos/ + sudo sed -i "10 i \ ./sway.nix" /mnt/etc/nixos/configuration.nix +fi + fi echo "" From 084993248e3502f67d7be41fa2f84549b8bf599a Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 31 Mar 2023 15:21:49 +0000 Subject: [PATCH 066/228] Update install.sh --- install.sh | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/install.sh b/install.sh index c7f4bab..3fab391 100644 --- a/install.sh +++ b/install.sh @@ -55,12 +55,26 @@ read swapName # Create EFI partition sudo mkfs.fat -F32 -n EFI $efiName +# Encrypt the root partition +sudo cryptsetup luksFormat -v -s 512 -h sha512 $rootName + +# Open the encrypted root partition +sudo cryptsetup luksOpen $rootName crypt-root + +sudo pvcreate /dev/mapper/crypt-root +sudo vgcreate lvm /dev/mapper/crypt-root + +sudo lvcreate -L 4G -n swap lvm +sudo lvcreate -l '100%FREE' -n root lvm + +sudo cryptsetup config $rootName --label luks + sudo mkswap $swapName # swap partition sudo mkfs.btrfs -L root $rootName # /root partition # Mount the filesystems. -sudo swapon $swapName -sudo mount $rootName /mnt +sudo swapon /dev/mapper/lvm-swap +sudo mount /dev/mapper/lvm-root /mnt # Create Subvolumes sudo btrfs subvolume create /mnt/@root @@ -86,7 +100,7 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/luks/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" @@ -150,13 +164,7 @@ if [ $deviceChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/galp4.nix > galp4.nix; sudo mv -f galp4.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix fi - -if [ $deviceChoice = 4 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix -fi - -if [ $deviceChoice = 5 ]; then + #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; s #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix From 99f366132ec389dbac0313630c11bc1274a078e7 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 31 Mar 2023 15:30:35 +0000 Subject: [PATCH 067/228] Update install.sh --- install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install.sh b/install.sh index 3fab391..8e521c0 100644 --- a/install.sh +++ b/install.sh @@ -172,5 +172,8 @@ fi fi +# Replace LUKS device +sudo sed -i "s#/dev/sda#$rootName#g" /mnt/etc/nixos/configuration.nix + # Install sudo nixos-install From 3b411028aac027317f89f5bbbd011d9e62d454f7 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 31 Mar 2023 15:36:27 +0000 Subject: [PATCH 068/228] Update install.sh --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 8e521c0..79eafca 100644 --- a/install.sh +++ b/install.sh @@ -69,8 +69,8 @@ sudo lvcreate -l '100%FREE' -n root lvm sudo cryptsetup config $rootName --label luks -sudo mkswap $swapName # swap partition -sudo mkfs.btrfs -L root $rootName # /root partition +sudo mkswap /dev/lvm/swap # swap partition +sudo mkfs.btrfs -L root /dev/mapper/lvm-root # /root partition # Mount the filesystems. sudo swapon /dev/mapper/lvm-swap From 766177340bfd5d8ab32db1eedd130dca0f3d1f51 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 31 Mar 2023 15:40:15 +0000 Subject: [PATCH 069/228] Update install.sh --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 79eafca..2744d0d 100644 --- a/install.sh +++ b/install.sh @@ -84,9 +84,9 @@ sudo btrfs subvolume create /mnt/@home sudo umount /mnt # Mount the subvolumes. -sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@ $rootName /mnt -sudo mkdir /mnt/home -sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@home $rootName /mnt/home +mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt +mkdir /mnt/home +mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home # Mount the EFI partition. sudo mount --mkdir $efiName /mnt/boot/ From e4241b0c58c32cab9b56fbba0e1cfb2e976a50aa Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 31 Mar 2023 15:43:09 +0000 Subject: [PATCH 070/228] Update install.sh --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 2744d0d..547a54a 100644 --- a/install.sh +++ b/install.sh @@ -84,9 +84,9 @@ sudo btrfs subvolume create /mnt/@home sudo umount /mnt # Mount the subvolumes. -mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt -mkdir /mnt/home -mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home +sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt +sudo mkdir /mnt/home +sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home # Mount the EFI partition. sudo mount --mkdir $efiName /mnt/boot/ From 6fca38d2f2ea6d3c0a69360632b12bbc790b65f9 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 31 Mar 2023 15:48:46 +0000 Subject: [PATCH 071/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 547a54a..c31bf97 100644 --- a/install.sh +++ b/install.sh @@ -84,7 +84,7 @@ sudo btrfs subvolume create /mnt/@home sudo umount /mnt # Mount the subvolumes. -sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@ /dev/lvm/root /mnt +sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@root /dev/lvm/root /mnt sudo mkdir /mnt/home sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home From 99df74fc41cf08d933451ee303d68832f85b06dd Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 31 Mar 2023 15:56:50 +0000 Subject: [PATCH 072/228] Update install.sh --- install.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/install.sh b/install.sh index c31bf97..f392a7f 100644 --- a/install.sh +++ b/install.sh @@ -164,6 +164,13 @@ if [ $deviceChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/galp4.nix > galp4.nix; sudo mv -f galp4.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix fi + +if [ $deviceChoice = 4 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix +fi + +if [ $deviceChoice = 5 ]; then #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; s #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ From 4e3857b2e2b2fadc6e8f323633380ea90c18c2f4 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 31 Mar 2023 15:57:41 +0000 Subject: [PATCH 073/228] Update install.sh --- install.sh | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/install.sh b/install.sh index f392a7f..e4b52a2 100644 --- a/install.sh +++ b/install.sh @@ -118,23 +118,19 @@ read desktopChoice if [ $desktopChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix -else -if [ $desktopChoice = 2 ]; then +elif [ $desktopChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix -fi -if [ $desktopChoice = 3 ]; then +elif [ $desktopChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/pantheon.nix > pantheon.nix; sudo mv -f pantheon.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix -fi -if [ $desktopChoice = 4 ]; then +elif [ $desktopChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/sway.nix > sway.nix; sudo mv -f sway.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./sway.nix" /mnt/etc/nixos/configuration.nix -fi - + fi echo "" From 6fb781a07824125c8e2224aa572da694d257c9e4 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 31 Mar 2023 16:02:21 +0000 Subject: [PATCH 074/228] Update install.sh --- install.sh | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/install.sh b/install.sh index e4b52a2..322cdd8 100644 --- a/install.sh +++ b/install.sh @@ -130,7 +130,7 @@ elif [ $desktopChoice = 3 ]; then elif [ $desktopChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/sway.nix > sway.nix; sudo mv -f sway.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./sway.nix" /mnt/etc/nixos/configuration.nix - + fi echo "" @@ -149,29 +149,24 @@ read deviceChoice if [ $deviceChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/oryp6.nix > oryp6.nix; sudo mv -f oryp6.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix -else -if [ $deviceChoice = 2 ]; then +elif [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/galp3-b.nix > galp3-b.nix; sudo mv -f galp3-b.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./galp3-b.nix" /mnt/etc/nixos/configuration.nix -fi -if [ $deviceChoice = 3 ]; then +elif [ $deviceChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/galp4.nix > galp4.nix; sudo mv -f galp4.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix -fi -if [ $deviceChoice = 4 ]; then +elif [ $deviceChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix -fi -if [ $deviceChoice = 5 ]; then +elif [ $deviceChoice = 5 ]; then #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; s #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix -fi fi From 3dc06836bf4d4ebe499e84c8347ac1d73bc0e1a4 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Sat, 1 Apr 2023 23:46:57 +0000 Subject: [PATCH 075/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 322cdd8..38c7af0 100644 --- a/install.sh +++ b/install.sh @@ -100,7 +100,7 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/luks/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" From 266b04f6318403e51856085fa4b5f50e82f3fe1d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 12 Apr 2023 16:19:53 +0000 Subject: [PATCH 076/228] Update install.sh --- install.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/install.sh b/install.sh index 38c7af0..a2d4be3 100644 --- a/install.sh +++ b/install.sh @@ -140,6 +140,7 @@ echo "2) Galago Pro (galp3-b)" echo "3) Galago Pro (galp4)" echo "4) HP Omen (15-dh0015nr)" echo "5) Pinebook Pro" +echo "6) Virtual Machine" echo "0) None or N/A" read deviceChoice @@ -168,6 +169,10 @@ elif [ $deviceChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix +elif [ $deviceChoice = 6 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +fi + fi # Replace LUKS device From b9d5261c20d08d00e6cca860985e09c8e14fefd6 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 12 Apr 2023 16:26:12 +0000 Subject: [PATCH 077/228] Update install.sh --- install.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/install.sh b/install.sh index a2d4be3..574092e 100644 --- a/install.sh +++ b/install.sh @@ -100,7 +100,7 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/luks/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" @@ -173,8 +173,6 @@ elif [ $deviceChoice = 6 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ fi -fi - # Replace LUKS device sudo sed -i "s#/dev/sda#$rootName#g" /mnt/etc/nixos/configuration.nix From 123f0e32b582eea9d73c130e311f0957d8a978dc Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 13:22:25 +0000 Subject: [PATCH 078/228] Update install.sh --- install.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index 574092e..14412e8 100644 --- a/install.sh +++ b/install.sh @@ -138,9 +138,10 @@ echo "Which device are you installing to?" echo "1) Oryx Pro (oryp6)" echo "2) Galago Pro (galp3-b)" echo "3) Galago Pro (galp4)" -echo "4) HP Omen (15-dh0015nr)" -echo "5) Pinebook Pro" -echo "6) Virtual Machine" +echo "4) Thelio NVIDIA (thelio-b1)" +echo "5) HP Omen (15-dh0015nr)" +echo "6) Pinebook Pro" +echo "7) Virtual Machine" echo "0) None or N/A" read deviceChoice @@ -160,16 +161,19 @@ elif [ $deviceChoice = 3 ]; then sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 4 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/thelio-nvidia.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + +elif [ $deviceChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix -elif [ $deviceChoice = 5 ]; then +elif [ $deviceChoice = 6 ]; then #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; s #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix -elif [ $deviceChoice = 6 ]; then +elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ fi From 6dcc21244adb34cc835bad0c327de4f0a490e2e7 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 17:33:30 +0000 Subject: [PATCH 079/228] Add Thelio with NVIDIA sed option --- install.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 14412e8..dadf1a8 100644 --- a/install.sh +++ b/install.sh @@ -161,7 +161,7 @@ elif [ $deviceChoice = 3 ]; then sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 4 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/thelio-nvidia.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + elif [ $deviceChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ @@ -180,5 +180,8 @@ fi # Replace LUKS device sudo sed -i "s#/dev/sda#$rootName#g" /mnt/etc/nixos/configuration.nix +# Disable latest kernel for Thelio with NVIDIA GPU +sudo sed -i "s/boot.kernelPackages/# boot.kernelPackages/g" /mnt/etc/nixos/configuration.nix + # Install sudo nixos-install From 8060b0f4f258bd6885e617f32ee0fefe0259e939 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 17:37:07 +0000 Subject: [PATCH 080/228] Update install.sh --- install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index dadf1a8..0cc724e 100644 --- a/install.sh +++ b/install.sh @@ -161,11 +161,12 @@ elif [ $deviceChoice = 3 ]; then sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 4 ]; then - + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./thelio-nvidia.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 6 ]; then #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; s From 6f4ae4be9d3bd3e9b7f08248a3d730dd1b44f354 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 18:03:44 +0000 Subject: [PATCH 081/228] Test if statement --- install.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/install.sh b/install.sh index 0cc724e..a282230 100644 --- a/install.sh +++ b/install.sh @@ -35,6 +35,22 @@ echo 19 # Change last partition to Swap. echo w # write changes. ) | sudo fdisk $driveName -w always -W always +if [ $driveName == /dev/nvme* ]; then + # Format the NVMe drive with the ext4 filesystem + mkfs.ext4 $DEVICE_PATH + +# Check if the device is a SATA drive +elif [ $driveName == /dev/sd* ]; then + # Format the SATA drive with the NTFS filesystem + mkfs.ntfs $DEVICE_PATH + +# Check if the device is an eMMC drive +elif [ $driveName == /dev/mmcblk* ]; then + # Format the eMMC drive with the FAT32 filesystem + mkfs.fat -F 32 $DEVICE_PATH + +fi + # List the new partitions. lsblk -f From 2596d54e282de6f3f849ac8424d0b4428c175c0a Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 18:38:43 +0000 Subject: [PATCH 082/228] Update install.sh --- install.sh | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index a282230..55fbacd 100644 --- a/install.sh +++ b/install.sh @@ -36,18 +36,31 @@ echo w # write changes. ) | sudo fdisk $driveName -w always -W always if [ $driveName == /dev/nvme* ]; then - # Format the NVMe drive with the ext4 filesystem - mkfs.ext4 $DEVICE_PATH + # Set variables + efiName="${driveName}p1" + rootName="${driveName}p2" + swapName="${driveName}p3" # Check if the device is a SATA drive elif [ $driveName == /dev/sd* ]; then - # Format the SATA drive with the NTFS filesystem - mkfs.ntfs $DEVICE_PATH + # Set variables + efiName="${driveName}1" + rootName="${driveName}2" + swapName="${driveName}3" + +# Check if the device is a Virtual drive +elif [ $driveName == /dev/vd* ]; then + # Set variables + efiName="${driveName}1" + rootName="${driveName}2" + swapName="${driveName}3" # Check if the device is an eMMC drive elif [ $driveName == /dev/mmcblk* ]; then - # Format the eMMC drive with the FAT32 filesystem - mkfs.fat -F 32 $DEVICE_PATH + # Set variables + efiName="${driveName}1" + rootName="${driveName}2" + swapName="${driveName}3" fi From 8c46a23503f70abcb36843450b1745ade19cc4ca Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 18:39:54 +0000 Subject: [PATCH 083/228] Update install.sh --- install.sh | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/install.sh b/install.sh index 55fbacd..fb2032a 100644 --- a/install.sh +++ b/install.sh @@ -67,20 +67,6 @@ fi # List the new partitions. lsblk -f -# Format the partitions : -echo "----------" -echo "" -echo "Which is the EFI partition?" -read efiName - -echo "" -echo "Which is the root partition?" -read rootName - -echo "" -echo "Which is the swap partition?" -read swapName - # Create EFI partition sudo mkfs.fat -F32 -n EFI $efiName From c447fbc67f3dd10e8fbefbbce2e61c1c2b31c7fe Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 18:45:54 +0000 Subject: [PATCH 084/228] Update install.sh --- install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.sh b/install.sh index fb2032a..1ed48d3 100644 --- a/install.sh +++ b/install.sh @@ -95,6 +95,8 @@ sudo mount /dev/mapper/lvm-root /mnt sudo btrfs subvolume create /mnt/@root sudo btrfs subvolume create /mnt/@home +sleep 120 + # Unmount root sudo umount /mnt From 3652e3663b7d321dec4a3764022e160ca39a312f Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 18:47:05 +0000 Subject: [PATCH 085/228] debugging --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 1ed48d3..1ba407a 100644 --- a/install.sh +++ b/install.sh @@ -70,6 +70,8 @@ lsblk -f # Create EFI partition sudo mkfs.fat -F32 -n EFI $efiName +sleep 120 + # Encrypt the root partition sudo cryptsetup luksFormat -v -s 512 -h sha512 $rootName @@ -95,8 +97,6 @@ sudo mount /dev/mapper/lvm-root /mnt sudo btrfs subvolume create /mnt/@root sudo btrfs subvolume create /mnt/@home -sleep 120 - # Unmount root sudo umount /mnt From b8fefcdfb8465248e00a3c0df0f4bd122a8468d9 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 18:50:06 +0000 Subject: [PATCH 086/228] Update install.sh --- install.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/install.sh b/install.sh index 1ba407a..847167b 100644 --- a/install.sh +++ b/install.sh @@ -37,30 +37,30 @@ echo w # write changes. if [ $driveName == /dev/nvme* ]; then # Set variables - efiName="${driveName}p1" - rootName="${driveName}p2" - swapName="${driveName}p3" + efiName=${driveName}p1 + rootName=${driveName}p2 + swapName=${driveName}p3 # Check if the device is a SATA drive elif [ $driveName == /dev/sd* ]; then # Set variables - efiName="${driveName}1" - rootName="${driveName}2" - swapName="${driveName}3" + efiName=${driveName}1 + rootName=${driveName}2 + swapName=${driveName}3 # Check if the device is a Virtual drive elif [ $driveName == /dev/vd* ]; then # Set variables - efiName="${driveName}1" - rootName="${driveName}2" - swapName="${driveName}3" + efiName=${driveName}1 + rootName=${driveName}2 + swapName=${driveName}3 # Check if the device is an eMMC drive elif [ $driveName == /dev/mmcblk* ]; then # Set variables - efiName="${driveName}1" - rootName="${driveName}2" - swapName="${driveName}3" + efiName=${driveName}1 + rootName=${driveName}2 + swapName=${driveName}3 fi From fd766280d5e0313998054d31791032b5b947305e Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 18:58:36 +0000 Subject: [PATCH 087/228] Update install.sh --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index 847167b..9774f11 100644 --- a/install.sh +++ b/install.sh @@ -70,6 +70,7 @@ lsblk -f # Create EFI partition sudo mkfs.fat -F32 -n EFI $efiName +echo $efiName sleep 120 # Encrypt the root partition From cd5e8ec98cddfb8f43f69700acef6975e4bb77e3 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 19:08:18 +0000 Subject: [PATCH 088/228] Update install.sh --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 9774f11..784ee95 100644 --- a/install.sh +++ b/install.sh @@ -51,9 +51,9 @@ elif [ $driveName == /dev/sd* ]; then # Check if the device is a Virtual drive elif [ $driveName == /dev/vd* ]; then # Set variables - efiName=${driveName}1 - rootName=${driveName}2 - swapName=${driveName}3 + efiName={$driveName}1 + rootName={$driveName}2 + swapName={$driveName}3 # Check if the device is an eMMC drive elif [ $driveName == /dev/mmcblk* ]; then From a1beec96af54d6bc23bc71f1b41de0e456100b86 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 19:09:49 +0000 Subject: [PATCH 089/228] Update install.sh --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 784ee95..c14d61c 100644 --- a/install.sh +++ b/install.sh @@ -51,9 +51,9 @@ elif [ $driveName == /dev/sd* ]; then # Check if the device is a Virtual drive elif [ $driveName == /dev/vd* ]; then # Set variables - efiName={$driveName}1 - rootName={$driveName}2 - swapName={$driveName}3 + efiName="{$driveName}1" + rootName="{$driveName}2" + swapName="{$driveName}3" # Check if the device is an eMMC drive elif [ $driveName == /dev/mmcblk* ]; then From 062259948606258f11b26e1c7d0460842e7e001d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 19:10:32 +0000 Subject: [PATCH 090/228] Update install.sh --- install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index c14d61c..b854ceb 100644 --- a/install.sh +++ b/install.sh @@ -35,28 +35,28 @@ echo 19 # Change last partition to Swap. echo w # write changes. ) | sudo fdisk $driveName -w always -W always -if [ $driveName == /dev/nvme* ]; then +if [ $driveName = /dev/nvme* ]; then # Set variables efiName=${driveName}p1 rootName=${driveName}p2 swapName=${driveName}p3 # Check if the device is a SATA drive -elif [ $driveName == /dev/sd* ]; then +elif [ $driveName = /dev/sd* ]; then # Set variables efiName=${driveName}1 rootName=${driveName}2 swapName=${driveName}3 # Check if the device is a Virtual drive -elif [ $driveName == /dev/vd* ]; then +elif [ $driveName = /dev/vd* ]; then # Set variables efiName="{$driveName}1" rootName="{$driveName}2" swapName="{$driveName}3" # Check if the device is an eMMC drive -elif [ $driveName == /dev/mmcblk* ]; then +elif [ $driveName = /dev/mmcblk* ]; then # Set variables efiName=${driveName}1 rootName=${driveName}2 From 66e9be884a5a8ae5534a960acbf6a690b08b17e9 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 19:21:56 +0000 Subject: [PATCH 091/228] Update install.sh --- install.sh | 45 +++++++++++++-------------------------------- 1 file changed, 13 insertions(+), 32 deletions(-) diff --git a/install.sh b/install.sh index b854ceb..a4ffc25 100644 --- a/install.sh +++ b/install.sh @@ -35,44 +35,25 @@ echo 19 # Change last partition to Swap. echo w # write changes. ) | sudo fdisk $driveName -w always -W always -if [ $driveName = /dev/nvme* ]; then - # Set variables - efiName=${driveName}p1 - rootName=${driveName}p2 - swapName=${driveName}p3 - -# Check if the device is a SATA drive -elif [ $driveName = /dev/sd* ]; then - # Set variables - efiName=${driveName}1 - rootName=${driveName}2 - swapName=${driveName}3 - -# Check if the device is a Virtual drive -elif [ $driveName = /dev/vd* ]; then - # Set variables - efiName="{$driveName}1" - rootName="{$driveName}2" - swapName="{$driveName}3" - -# Check if the device is an eMMC drive -elif [ $driveName = /dev/mmcblk* ]; then - # Set variables - efiName=${driveName}1 - rootName=${driveName}2 - swapName=${driveName}3 - -fi - # List the new partitions. lsblk -f +echo "----------" +echo "" +echo "Which is the EFI partition?" +read efiName + +echo "" +echo "Which is the root partition?" +read rootName + +echo "" +echo "Which is the swap partition?" +read swapName + # Create EFI partition sudo mkfs.fat -F32 -n EFI $efiName -echo $efiName -sleep 120 - # Encrypt the root partition sudo cryptsetup luksFormat -v -s 512 -h sha512 $rootName From d987e56383d9182075b09537d3676f9ad4a21883 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 20:05:28 +0000 Subject: [PATCH 092/228] Update install.sh --- install.sh | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/install.sh b/install.sh index a4ffc25..b42d06b 100644 --- a/install.sh +++ b/install.sh @@ -2,6 +2,9 @@ # then sets it as a variable for hibernation support ramTotal=$(free -h | awk '/^Mem:/{print $2}'| awk -FG {'print$1'}) +# Set append for drive automation +APPEND="" + # Detect and list the drives. lsblk -f @@ -38,18 +41,16 @@ echo w # write changes. # List the new partitions. lsblk -f -echo "----------" -echo "" -echo "Which is the EFI partition?" -read efiName +if [[ "$driveName" == "/dev/nvme"* || "$driveName" == "/dev/mmcblk0"* ]]; then + APPEND="p" +fi -echo "" -echo "Which is the root partition?" -read rootName - -echo "" -echo "Which is the swap partition?" -read swapName +efiName=${driveName}$APPEND +efiName+=1 +rootName=${driveName}$APPEND +rootName+=2 +swapName=${driveName}$APPEND +swapName+=3 # Create EFI partition sudo mkfs.fat -F32 -n EFI $efiName From 5ad2080f9772741f3de6a19a111254c7009f9aeb Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 20:24:29 +0000 Subject: [PATCH 093/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index b42d06b..2378da9 100644 --- a/install.sh +++ b/install.sh @@ -175,7 +175,7 @@ elif [ $deviceChoice = 6 ]; then sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 7 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/luks/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ fi # Replace LUKS device From 7caeae09f626843fe2b3d0dac86971599423cfba Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 20:32:39 +0000 Subject: [PATCH 094/228] Move boot.kernelPackages option --- install.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 2378da9..ce9547e 100644 --- a/install.sh +++ b/install.sh @@ -163,6 +163,8 @@ elif [ $deviceChoice = 3 ]; then elif [ $deviceChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./thelio-nvidia.nix" /mnt/etc/nixos/configuration.nix + # Disable latest kernel for Thelio with NVIDIA GPU + sudo sed -i "s/boot.kernelPackages/# boot.kernelPackages/g" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ @@ -181,8 +183,5 @@ fi # Replace LUKS device sudo sed -i "s#/dev/sda#$rootName#g" /mnt/etc/nixos/configuration.nix -# Disable latest kernel for Thelio with NVIDIA GPU -sudo sed -i "s/boot.kernelPackages/# boot.kernelPackages/g" /mnt/etc/nixos/configuration.nix - # Install sudo nixos-install From b31598203354ac5e76fd71b3c85092a546ef1234 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 20:43:13 +0000 Subject: [PATCH 095/228] Fix partitioning --- install.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/install.sh b/install.sh index ce9547e..9fbbaf8 100644 --- a/install.sh +++ b/install.sh @@ -24,17 +24,11 @@ echo +1G # Set +1G as last sector. echo n # Create new partition (for root). echo # Set default partition number. echo # Set default first sector. -echo -4G # Set -4G as last sector. -echo n # Create new partition (for root). -echo # Set default partition number. -echo # Set default first sector. echo # Set last sector. echo t # Change partition type. echo 1 # Pick first partition. echo 1 # Change first partition to EFI system. echo t # Change partition type. -echo 3 # Pick the last partition. -echo 19 # Change last partition to Swap. echo w # write changes. ) | sudo fdisk $driveName -w always -W always From 3263d94099f3d36b1b88d487a8b154459aae426f Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 22:00:16 +0000 Subject: [PATCH 096/228] Update install.sh --- install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install.sh b/install.sh index 9fbbaf8..5ecb783 100644 --- a/install.sh +++ b/install.sh @@ -28,7 +28,6 @@ echo # Set last sector. echo t # Change partition type. echo 1 # Pick first partition. echo 1 # Change first partition to EFI system. -echo t # Change partition type. echo w # write changes. ) | sudo fdisk $driveName -w always -W always From fbe2438d64a7e45b03a879759ee56a42af35cb9d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Apr 2023 22:06:26 +0000 Subject: [PATCH 097/228] Update install.sh --- install.sh | 60 +++++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/install.sh b/install.sh index 5ecb783..63587c3 100644 --- a/install.sh +++ b/install.sh @@ -96,36 +96,6 @@ echo "Password is hashed so it is not plaintext" curl https://gitlab.com/ahoneybun/nix-configs/-/raw/luks/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ -echo "" -echo "Which Desktop Environment do you want?" -echo "1) Plasma" -echo "2) GNOME" -echo "3) Pantheon" -echo "4) Sway" -echo "0) None or N/A" -read desktopChoice - -# Change the URL to match where you are hosting your DE/WM .nix file -# Update the second command to the file name that matches your DE/WM .nix file - -if [ $desktopChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix - -elif [ $desktopChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix - -elif [ $desktopChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/pantheon.nix > pantheon.nix; sudo mv -f pantheon.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix - -elif [ $desktopChoice = 4 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/sway.nix > sway.nix; sudo mv -f sway.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./sway.nix" /mnt/etc/nixos/configuration.nix - -fi - echo "" echo "Which device are you installing to?" echo "1) Oryx Pro (oryp6)" @@ -173,6 +143,36 @@ elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/luks/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ fi +echo "" +echo "Which Desktop Environment do you want?" +echo "1) Plasma" +echo "2) GNOME" +echo "3) Pantheon" +echo "4) Sway" +echo "0) None or N/A" +read desktopChoice + +# Change the URL to match where you are hosting your DE/WM .nix file +# Update the second command to the file name that matches your DE/WM .nix file + +if [ $desktopChoice = 1 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ + sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix + +elif [ $desktopChoice = 2 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ + sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix + +elif [ $desktopChoice = 3 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/pantheon.nix > pantheon.nix; sudo mv -f pantheon.nix /mnt/etc/nixos/ + sudo sed -i "10 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix + +elif [ $desktopChoice = 4 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/sway.nix > sway.nix; sudo mv -f sway.nix /mnt/etc/nixos/ + sudo sed -i "10 i \ ./sway.nix" /mnt/etc/nixos/configuration.nix + +fi + # Replace LUKS device sudo sed -i "s#/dev/sda#$rootName#g" /mnt/etc/nixos/configuration.nix From 33c309eb8d7ca08668291a0a2fda877dfd85be53 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 19 Apr 2023 00:21:07 +0000 Subject: [PATCH 098/228] Update README.md --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 9d7a694..564e700 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,7 @@ At the core of this installer it does the following: - Partition the drive of your choice - Installs a base of NixOS (`configuration.nix`) -- Installs a DE/WM of your choice (currently supporting GNOME and Plasma) -- Installs needed packages (`programs.nix`) +- Installs a DE/WM of your choice (currently supporting GNOME, Plasma, Pantheon and Sway) - Installs needed packages for certain hardware nix files are from [this repo](https://gitlab.com/ahoneybun/nix-configs/) but that can be changed as needed. @@ -15,11 +14,9 @@ nix files are from [this repo](https://gitlab.com/ahoneybun/nix-configs/) but th Tested on the following drives: - SATA - NVMe -- eMMC Tested on the following architectures: - x86_64 -- aarch64 This sets the hashedPassword to my own so you will need to update it to match your own as well as the username. I created the hash with this command: From b1905abcba244dcdcdb9eb72af46705f2f500733 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 2 Jun 2023 22:16:47 +0000 Subject: [PATCH 099/228] Update install.sh --- install.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 63587c3..d7f2d42 100644 --- a/install.sh +++ b/install.sh @@ -134,9 +134,8 @@ elif [ $deviceChoice = 5 ]; then sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 6 ]; then - #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; s - #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ + #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/aarch64/jaal/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/aarch64/jaal/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 7 ]; then From 092b7cc4f489343415f295c57e93476557c9bc1e Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 6 Jun 2023 16:54:43 +0000 Subject: [PATCH 100/228] Update install.sh --- install.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index d7f2d42..b5d4ab5 100644 --- a/install.sh +++ b/install.sh @@ -112,25 +112,25 @@ read deviceChoice # Update the second command to the file name that matches your system .nix file if [ $deviceChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/oryp6.nix > oryp6.nix; sudo mv -f oryp6.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/oryp6.nix > oryp6.nix; sudo mv -f oryp6.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/galp3-b.nix > galp3-b.nix; sudo mv -f galp3-b.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/garrus/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./galp3-b.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/galp4.nix > galp4.nix; sudo mv -f galp4.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/galp4.nix > galp4.nix; sudo mv -f galp4.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 4 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./thelio-nvidia.nix" /mnt/etc/nixos/configuration.nix # Disable latest kernel for Thelio with NVIDIA GPU sudo sed -i "s/boot.kernelPackages/# boot.kernelPackages/g" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 6 ]; then From 9bbca1ab8f287b0c4caf9b3e8074e8966348f4e7 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 11 Aug 2023 14:25:09 +0000 Subject: [PATCH 101/228] Update install.sh From afd45c2d201ce52b20805e280fb0a6ee7fac7220 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 27 Oct 2023 16:20:43 +0000 Subject: [PATCH 102/228] Update install.sh --- install.sh | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/install.sh b/install.sh index b5d4ab5..458e309 100644 --- a/install.sh +++ b/install.sh @@ -93,18 +93,17 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/luks/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" echo "Which device are you installing to?" -echo "1) Oryx Pro (oryp6)" -echo "2) Galago Pro (galp3-b)" -echo "3) Galago Pro (galp4)" -echo "4) Thelio NVIDIA (thelio-b1)" -echo "5) HP Omen (15-dh0015nr)" -echo "6) Pinebook Pro" -echo "7) Virtual Machine" +echo "1) Galago Pro (galp3-b)" +echo "2) Darter Pro (darp9)" +echo "3) Thelio NVIDIA (thelio-b1)" +echo "4) HP Omen (15-dh0015nr)" +echo "5) Pinebook Pro" +echo "6) Virtual Machine" echo "0) None or N/A" read deviceChoice @@ -112,34 +111,29 @@ read deviceChoice # Update the second command to the file name that matches your system .nix file if [ $deviceChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/oryp6.nix > oryp6.nix; sudo mv -f oryp6.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./oryp6.nix" /mnt/etc/nixos/configuration.nix + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/garrus/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./galp3-b.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/garrus/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./galp3-b.nix" /mnt/etc/nixos/configuration.nix + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/darp9.nix > darp9.nix; sudo mv -f darp9.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./darp9.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/galp4.nix > galp4.nix; sudo mv -f galp4.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./galp4.nix" /mnt/etc/nixos/configuration.nix - -elif [ $deviceChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./thelio-nvidia.nix" /mnt/etc/nixos/configuration.nix # Disable latest kernel for Thelio with NVIDIA GPU sudo sed -i "s/boot.kernelPackages/# boot.kernelPackages/g" /mnt/etc/nixos/configuration.nix -elif [ $deviceChoice = 5 ]; then +elif [ $deviceChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix -elif [ $deviceChoice = 6 ]; then - #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/aarch64/jaal/pinebook-pro.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +elif [ $deviceChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/aarch64/jaal/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix -elif [ $deviceChoice = 7 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/luks/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +elif [ $deviceChoice = 6 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ fi echo "" From bfb2d07d25c9bfa1ec1ca99d2673f1dd44f9a53e Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 31 Oct 2023 23:15:07 +0000 Subject: [PATCH 103/228] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 564e700..33eeee7 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ The following will happen: - Creates a 1GB EFI partiton at `/dev/***1`. - Creates a 4GB Swap partition at `/dev/***3`. - Creates a root partition with the rest of the space at `/dev/***2`. -- Installs GRUB +- Installs systemd-boot ## Roadmap From 3f7664892381c82b5b5cca0a420622b5df602d84 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 31 Oct 2023 23:22:53 +0000 Subject: [PATCH 104/228] Reorder and add hostnames --- install.sh | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/install.sh b/install.sh index 458e309..77b03d0 100644 --- a/install.sh +++ b/install.sh @@ -98,12 +98,13 @@ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs echo "" echo "Which device are you installing to?" -echo "1) Galago Pro (galp3-b)" -echo "2) Darter Pro (darp9)" -echo "3) Thelio NVIDIA (thelio-b1)" -echo "4) HP Omen (15-dh0015nr)" -echo "5) Pinebook Pro" -echo "6) Virtual Machine" +echo "1) Home Desktop - Shepard" +echo "2) Galago Pro (galp3-b) - Garrus" +echo "3) HP Omen (15-dh0015nr)" +echo "4) Pinebook Pro - Jaal" +echo "5) Thelio NVIDIA (thelio-b1)" +echo "6) Darter Pro (darp9)" +echo "7) Virtual Machine" echo "0) None or N/A" read deviceChoice @@ -111,28 +112,32 @@ read deviceChoice # Update the second command to the file name that matches your system .nix file if [ $deviceChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/garrus/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./galp3-b.nix" /mnt/etc/nixos/configuration.nix + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./shepard.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/darp9.nix > darp9.nix; sudo mv -f darp9.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./darp9.nix" /mnt/etc/nixos/configuration.nix + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./garrus.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 3 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix + +elif [ $deviceChoice = 4 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/aarch64/jaal/pbp.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./jaal.nix" /mnt/etc/nixos/configuration.nix + +elif [ $deviceChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./thelio-nvidia.nix" /mnt/etc/nixos/configuration.nix # Disable latest kernel for Thelio with NVIDIA GPU sudo sed -i "s/boot.kernelPackages/# boot.kernelPackages/g" /mnt/etc/nixos/configuration.nix -elif [ $deviceChoice = 4 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix - -elif [ $deviceChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/aarch64/jaal/pbp.nix > pbp.nix; sudo mv -f pbp.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./pbp.nix" /mnt/etc/nixos/configuration.nix - elif [ $deviceChoice = 6 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/darp9.nix > darp9.nix; sudo mv -f darp9.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ ./darp9.nix" /mnt/etc/nixos/configuration.nix + +elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ fi From bdebc5b8f04ae357258176ebf106870c8120b155 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 28 Dec 2023 21:18:48 +0000 Subject: [PATCH 105/228] Update install.sh --- install.sh | 43 +++++++------------------------------------ 1 file changed, 7 insertions(+), 36 deletions(-) diff --git a/install.sh b/install.sh index 77b03d0..21029ab 100644 --- a/install.sh +++ b/install.sh @@ -45,44 +45,15 @@ rootName+=2 swapName=${driveName}$APPEND swapName+=3 -# Create EFI partition -sudo mkfs.fat -F32 -n EFI $efiName +# Download Disko file +cd /tmp +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/partitions/luks-btrfs-subvolumes.nix -o /tmp/disko-config.nix -# Encrypt the root partition -sudo cryptsetup luksFormat -v -s 512 -h sha512 $rootName +# Replace drive in Disko file +sudo sed -i "s#/dev/vdb#$rootName#g" /tmp/disko-config.nix -# Open the encrypted root partition -sudo cryptsetup luksOpen $rootName crypt-root - -sudo pvcreate /dev/mapper/crypt-root -sudo vgcreate lvm /dev/mapper/crypt-root - -sudo lvcreate -L 4G -n swap lvm -sudo lvcreate -l '100%FREE' -n root lvm - -sudo cryptsetup config $rootName --label luks - -sudo mkswap /dev/lvm/swap # swap partition -sudo mkfs.btrfs -L root /dev/mapper/lvm-root # /root partition - -# Mount the filesystems. -sudo swapon /dev/mapper/lvm-swap -sudo mount /dev/mapper/lvm-root /mnt - -# Create Subvolumes -sudo btrfs subvolume create /mnt/@root -sudo btrfs subvolume create /mnt/@home - -# Unmount root -sudo umount /mnt - -# Mount the subvolumes. -sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@root /dev/lvm/root /mnt -sudo mkdir /mnt/home -sudo mount -o noatime,commit=120,compress=zstd:10,subvol=@home /dev/lvm/root /mnt/home - -# Mount the EFI partition. -sudo mount --mkdir $efiName /mnt/boot/ +# Run Disko to partition the disk +sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix # Generate Nix configuration sudo nixos-generate-config --root /mnt From 0ccf221ea095e8cc44fd3376992334ea05dc086c Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 15:24:02 +0000 Subject: [PATCH 106/228] Update install.sh --- install.sh | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/install.sh b/install.sh index 21029ab..e659718 100644 --- a/install.sh +++ b/install.sh @@ -15,22 +15,6 @@ echo "" echo "Which drive do we want to use for this installation?" read driveName -( -echo g # Create new GPT partition table -echo n # Create new partition (for EFI). -echo # Set default partition number. -echo # Set default first sector. -echo +1G # Set +1G as last sector. -echo n # Create new partition (for root). -echo # Set default partition number. -echo # Set default first sector. -echo # Set last sector. -echo t # Change partition type. -echo 1 # Pick first partition. -echo 1 # Change first partition to EFI system. -echo w # write changes. -) | sudo fdisk $driveName -w always -W always - # List the new partitions. lsblk -f From 34ce1bdffb103ede062e014499b6cd08e4021dac Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 15:28:28 +0000 Subject: [PATCH 107/228] Update install.sh --- install.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index e659718..1f7bf28 100644 --- a/install.sh +++ b/install.sh @@ -40,7 +40,10 @@ sudo sed -i "s#/dev/vdb#$rootName#g" /tmp/disko-config.nix sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix # Generate Nix configuration -sudo nixos-generate-config --root /mnt +#sudo nixos-generate-config --root /mnt + +sudo nixos-generate-config --no-filesystems --root /mnt +sudo mv /tmp/disko-config.nix /mnt/etc/nixos # Copy my base nix configs over # Change the URL to match where you are hosting your .nix file(s). @@ -48,8 +51,8 @@ sudo nixos-generate-config --root /mnt echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ +#curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +#curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ echo "" echo "Which device are you installing to?" From 818737c53a65d0f796774370ed8123602a109fd7 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 15:33:25 +0000 Subject: [PATCH 108/228] Update install.sh --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 1f7bf28..55b361c 100644 --- a/install.sh +++ b/install.sh @@ -31,10 +31,10 @@ swapName+=3 # Download Disko file cd /tmp -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/partitions/luks-btrfs-subvolumes.nix -o /tmp/disko-config.nix +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/partitions/simple-efi.nix -o /tmp/disko-config.nix # Replace drive in Disko file -sudo sed -i "s#/dev/vdb#$rootName#g" /tmp/disko-config.nix +#sudo sed -i "s#/dev/vdb#$rootName#g" /tmp/disko-config.nix # Run Disko to partition the disk sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix From c770791c8e8cf62d36a9d87cf5e1b5d12d7404d8 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 15:49:13 +0000 Subject: [PATCH 109/228] Update install.sh --- install.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 55b361c..3d4146f 100644 --- a/install.sh +++ b/install.sh @@ -97,6 +97,10 @@ elif [ $deviceChoice = 6 ]; then elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + sudo sed -i "11 i \ "${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"" /mnt/etc/nixos/configuration.nix + sudo sed -i "12 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix + + ./disko-config.nix fi echo "" @@ -130,7 +134,7 @@ elif [ $desktopChoice = 4 ]; then fi # Replace LUKS device -sudo sed -i "s#/dev/sda#$rootName#g" /mnt/etc/nixos/configuration.nix +#sudo sed -i "s#/dev/sda#$rootName#g" /mnt/etc/nixos/configuration.nix # Install sudo nixos-install From 6617b81c473ef133117ba893ebe2816fd068870f Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 16:10:50 +0000 Subject: [PATCH 110/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 3d4146f..9264ef0 100644 --- a/install.sh +++ b/install.sh @@ -97,7 +97,7 @@ elif [ $deviceChoice = 6 ]; then elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ "${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"" /mnt/etc/nixos/configuration.nix + sed -i 's#disko#"${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"#' /mnt/etc/nixos/configuration.nix sudo sed -i "12 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix ./disko-config.nix From 2777ed06541340422463ca2f1e00748b358e3a76 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 16:11:29 +0000 Subject: [PATCH 111/228] Update install.sh --- install.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 9264ef0..5a79dc0 100644 --- a/install.sh +++ b/install.sh @@ -99,9 +99,7 @@ elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ sed -i 's#disko#"${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"#' /mnt/etc/nixos/configuration.nix sudo sed -i "12 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix - - ./disko-config.nix -fi + fi echo "" echo "Which Desktop Environment do you want?" From 3ed3d5d8696eb719c2fe43775016da9942501bc6 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 16:14:13 +0000 Subject: [PATCH 112/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 5a79dc0..5571d59 100644 --- a/install.sh +++ b/install.sh @@ -98,7 +98,7 @@ elif [ $deviceChoice = 6 ]; then elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ sed -i 's#disko#"${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"#' /mnt/etc/nixos/configuration.nix - sudo sed -i "12 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix + sudo sed -i "10 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix fi echo "" From 28293c042e39136a430f25c33cda4b7c69384101 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 16:15:58 +0000 Subject: [PATCH 113/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 5571d59..75d12ca 100644 --- a/install.sh +++ b/install.sh @@ -97,7 +97,7 @@ elif [ $deviceChoice = 6 ]; then elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ - sed -i 's#disko#"${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"#' /mnt/etc/nixos/configuration.nix + sudo sed -i 's#disko#"${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"#' /mnt/etc/nixos/configuration.nix sudo sed -i "10 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix fi From a34e71876b34fbd0f0e0a9675d0b0e19eb8cdd27 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 16:24:52 +0000 Subject: [PATCH 114/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 75d12ca..93ba5f5 100644 --- a/install.sh +++ b/install.sh @@ -96,7 +96,7 @@ elif [ $deviceChoice = 6 ]; then sudo sed -i "11 i \ ./darp9.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 7 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ sudo sed -i 's#disko#"${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"#' /mnt/etc/nixos/configuration.nix sudo sed -i "10 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix fi From 9311549eea098735466aae79f21f9cbf0ccbdd62 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 16:46:48 +0000 Subject: [PATCH 115/228] Update install.sh --- install.sh | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/install.sh b/install.sh index 93ba5f5..010a425 100644 --- a/install.sh +++ b/install.sh @@ -54,16 +54,18 @@ echo "Password is hashed so it is not plaintext" #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ -echo "" -echo "Which device are you installing to?" -echo "1) Home Desktop - Shepard" -echo "2) Galago Pro (galp3-b) - Garrus" -echo "3) HP Omen (15-dh0015nr)" -echo "4) Pinebook Pro - Jaal" -echo "5) Thelio NVIDIA (thelio-b1)" -echo "6) Darter Pro (darp9)" -echo "7) Virtual Machine" -echo "0) None or N/A" +cat << EOF + +Which device are you installing to? + 1) Home Desktop - Shepard + 2) Galago Pro (galp3-b) - Garrus + 3) HP Omen (15-dh0015nr) + 4) Pinebook Pro - Jaal + 5) Thelio NVIDIA (thelio-b1) + 6) Darter Pro (darp9) + 7) Virtual Machine + 0) None or N/A +EOF read deviceChoice # Change the URL to match where you are hosting your system .nix file From 5823acbed7d54b256d9ded5785bcd6b999dc4ced Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 16:50:25 +0000 Subject: [PATCH 116/228] Update install.sh --- install.sh | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/install.sh b/install.sh index 010a425..3a3592b 100644 --- a/install.sh +++ b/install.sh @@ -2,9 +2,6 @@ # then sets it as a variable for hibernation support ramTotal=$(free -h | awk '/^Mem:/{print $2}'| awk -FG {'print$1'}) -# Set append for drive automation -APPEND="" - # Detect and list the drives. lsblk -f @@ -15,26 +12,12 @@ echo "" echo "Which drive do we want to use for this installation?" read driveName -# List the new partitions. -lsblk -f - -if [[ "$driveName" == "/dev/nvme"* || "$driveName" == "/dev/mmcblk0"* ]]; then - APPEND="p" -fi - -efiName=${driveName}$APPEND -efiName+=1 -rootName=${driveName}$APPEND -rootName+=2 -swapName=${driveName}$APPEND -swapName+=3 - # Download Disko file cd /tmp curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/partitions/simple-efi.nix -o /tmp/disko-config.nix # Replace drive in Disko file -#sudo sed -i "s#/dev/vdb#$rootName#g" /tmp/disko-config.nix +sudo sed -i "s#/dev/vdb#$rootName#g" /tmp/disko-config.nix # Run Disko to partition the disk sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix From 045469eec08f217a7ec017bb0696e914d3836f5f Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 16:50:49 +0000 Subject: [PATCH 117/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 3a3592b..9849d0e 100644 --- a/install.sh +++ b/install.sh @@ -14,7 +14,7 @@ read driveName # Download Disko file cd /tmp -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/partitions/simple-efi.nix -o /tmp/disko-config.nix +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/partitions/simple-efi.nix -o /tmp/disko-config.nix # Replace drive in Disko file sudo sed -i "s#/dev/vdb#$rootName#g" /tmp/disko-config.nix From 9192cd819c7e8d86d0b4a7a126980e2e4f62818d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 16:51:19 +0000 Subject: [PATCH 118/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 9849d0e..e262e0c 100644 --- a/install.sh +++ b/install.sh @@ -17,7 +17,7 @@ cd /tmp curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/partitions/simple-efi.nix -o /tmp/disko-config.nix # Replace drive in Disko file -sudo sed -i "s#/dev/vdb#$rootName#g" /tmp/disko-config.nix +sudo sed -i "s#/dev/sda#$driveName#g" /tmp/disko-config.nix # Run Disko to partition the disk sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix From 5efb2d8ee7453e062801dcc182570c312d4f7c51 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 17:01:33 +0000 Subject: [PATCH 119/228] Update both ECHO options to EOF instead --- install.sh | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index e262e0c..5bc291b 100644 --- a/install.sh +++ b/install.sh @@ -86,13 +86,15 @@ elif [ $deviceChoice = 7 ]; then sudo sed -i "10 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix fi -echo "" -echo "Which Desktop Environment do you want?" -echo "1) Plasma" -echo "2) GNOME" -echo "3) Pantheon" -echo "4) Sway" -echo "0) None or N/A" +cat << EOF + +Which Desktop Environment do you want? + 1) Plasma + 2) GNOME + 3) Pantheon + 4) Sway + 0) None or N/A +EOF read desktopChoice # Change the URL to match where you are hosting your DE/WM .nix file From 451de45b43acb10276e4a691e458e940a14faa03 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 17:32:11 +0000 Subject: [PATCH 120/228] swap in LUKS BTRFS subvol file --- install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 5bc291b..62c35a9 100644 --- a/install.sh +++ b/install.sh @@ -14,7 +14,8 @@ read driveName # Download Disko file cd /tmp -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/partitions/simple-efi.nix -o /tmp/disko-config.nix +#curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/partitions/simple-efi.nix -o /tmp/disko-config.nix +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/partitions/luks-btrfs-subvolumes.nix -o /tmp/disko-config.nix # Replace drive in Disko file sudo sed -i "s#/dev/sda#$driveName#g" /tmp/disko-config.nix From a41e7a78248ff01b075369c4dc4326e490638222 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 18:28:56 +0000 Subject: [PATCH 121/228] Update install.sh --- install.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/install.sh b/install.sh index 62c35a9..ff26344 100644 --- a/install.sh +++ b/install.sh @@ -14,7 +14,6 @@ read driveName # Download Disko file cd /tmp -#curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/partitions/simple-efi.nix -o /tmp/disko-config.nix curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/partitions/luks-btrfs-subvolumes.nix -o /tmp/disko-config.nix # Replace drive in Disko file @@ -24,8 +23,6 @@ sudo sed -i "s#/dev/sda#$driveName#g" /tmp/disko-config.nix sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix # Generate Nix configuration -#sudo nixos-generate-config --root /mnt - sudo nixos-generate-config --no-filesystems --root /mnt sudo mv /tmp/disko-config.nix /mnt/etc/nixos From ccc91857a306502e473bb3ff1e2e5443d7cb0744 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 20:05:56 +0000 Subject: [PATCH 122/228] Update thelio-b1 build --- install.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index ff26344..8704bb8 100644 --- a/install.sh +++ b/install.sh @@ -32,7 +32,7 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -#curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ cat << EOF @@ -70,6 +70,8 @@ elif [ $deviceChoice = 4 ]; then elif [ $deviceChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ + sudo sed -i 's#disko#"${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"#' /mnt/etc/nixos/configuration.nix + sudo sed -i "10 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix sudo sed -i "11 i \ ./thelio-nvidia.nix" /mnt/etc/nixos/configuration.nix # Disable latest kernel for Thelio with NVIDIA GPU sudo sed -i "s/boot.kernelPackages/# boot.kernelPackages/g" /mnt/etc/nixos/configuration.nix From a6297052a76fb4961071a122dc7e090ca91297a1 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 20:21:30 +0000 Subject: [PATCH 123/228] Update install.sh --- install.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/install.sh b/install.sh index 8704bb8..ccc3453 100644 --- a/install.sh +++ b/install.sh @@ -82,8 +82,6 @@ elif [ $deviceChoice = 6 ]; then elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ - sudo sed -i 's#disko#"${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"#' /mnt/etc/nixos/configuration.nix - sudo sed -i "10 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix fi cat << EOF @@ -118,8 +116,5 @@ elif [ $desktopChoice = 4 ]; then fi -# Replace LUKS device -#sudo sed -i "s#/dev/sda#$rootName#g" /mnt/etc/nixos/configuration.nix - # Install sudo nixos-install From 3643da70631f44c00c0500b24ff3395cb24a2cdd Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 29 Dec 2023 21:07:56 +0000 Subject: [PATCH 124/228] Update install.sh --- install.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/install.sh b/install.sh index ccc3453..c535ddd 100644 --- a/install.sh +++ b/install.sh @@ -70,8 +70,6 @@ elif [ $deviceChoice = 4 ]; then elif [ $deviceChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ - sudo sed -i 's#disko#"${builtins.fetchTarball "https://github.com/nix-community/disko/archive/master.tar.gz"}/module.nix"#' /mnt/etc/nixos/configuration.nix - sudo sed -i "10 i \ ./disko-config.nix" /mnt/etc/nixos/configuration.nix sudo sed -i "11 i \ ./thelio-nvidia.nix" /mnt/etc/nixos/configuration.nix # Disable latest kernel for Thelio with NVIDIA GPU sudo sed -i "s/boot.kernelPackages/# boot.kernelPackages/g" /mnt/etc/nixos/configuration.nix From 97a2594eb9e0da9767bc4f8406f7758e680b7318 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 2 Jan 2024 17:42:25 +0000 Subject: [PATCH 125/228] Update install.sh --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index c535ddd..be7ecbe 100644 --- a/install.sh +++ b/install.sh @@ -14,7 +14,7 @@ read driveName # Download Disko file cd /tmp -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/partitions/luks-btrfs-subvolumes.nix -o /tmp/disko-config.nix +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/partitions/luks-btrfs-subvolumes.nix -o /tmp/disko-config.nix # Replace drive in Disko file sudo sed -i "s#/dev/sda#$driveName#g" /tmp/disko-config.nix @@ -32,7 +32,7 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ cat << EOF @@ -79,7 +79,7 @@ elif [ $deviceChoice = 6 ]; then sudo sed -i "11 i \ ./darp9.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 7 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/disko/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ fi cat << EOF From e05760dde35f90f8e4d6d7017475748db2f2d51a Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 8 Jan 2024 14:59:17 +0000 Subject: [PATCH 126/228] Edit VM options to use flake file and use nixos-install flake option --- install.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index be7ecbe..bd601bd 100644 --- a/install.sh +++ b/install.sh @@ -79,7 +79,8 @@ elif [ $deviceChoice = 6 ]; then sudo sed -i "11 i \ ./darp9.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 7 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ fi cat << EOF @@ -115,4 +116,5 @@ elif [ $desktopChoice = 4 ]; then fi # Install -sudo nixos-install +sudo nixos-install --impure --flake /mnt/etc/nixos/flake.nix +#sudo nixos-install From a11e58c93bdef7b8c2461e9d2e19a436dbc55c92 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 8 Jan 2024 16:42:17 +0000 Subject: [PATCH 127/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index bd601bd..8005f68 100644 --- a/install.sh +++ b/install.sh @@ -116,5 +116,5 @@ elif [ $desktopChoice = 4 ]; then fi # Install -sudo nixos-install --impure --flake /mnt/etc/nixos/flake.nix +sudo nixos-install --impure --flake /mnt/etc/nixos/flake.nix#vm #sudo nixos-install From cd4523a6aa461a73439aecc33ce98477949ea35c Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 8 Jan 2024 16:43:26 +0000 Subject: [PATCH 128/228] fix path --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 8005f68..58a370a 100644 --- a/install.sh +++ b/install.sh @@ -116,5 +116,5 @@ elif [ $desktopChoice = 4 ]; then fi # Install -sudo nixos-install --impure --flake /mnt/etc/nixos/flake.nix#vm +sudo nixos-install --impure --flake /mnt/etc/nixos#vm #sudo nixos-install From be6f524998cc72fdef9b8d9cc5208b7ea7261d85 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 8 Jan 2024 16:44:14 +0000 Subject: [PATCH 129/228] Fix flake path for VM --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 58a370a..b378c30 100644 --- a/install.sh +++ b/install.sh @@ -79,7 +79,7 @@ elif [ $deviceChoice = 6 ]; then sudo sed -i "11 i \ ./darp9.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 7 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ fi From 1e37870e70b5be8e3876de9420d9f46ac7ab1b1a Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 8 Jan 2024 16:48:10 +0000 Subject: [PATCH 130/228] Disable downloading the configuration.nix for now --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index b378c30..ac2aa3a 100644 --- a/install.sh +++ b/install.sh @@ -32,7 +32,7 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +#curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ cat << EOF From ff818891e46105206ddcaafebbb4fa4b24b00db6 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 8 Jan 2024 17:14:33 +0000 Subject: [PATCH 131/228] Add if/then --- install.sh | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index ac2aa3a..9351704 100644 --- a/install.sh +++ b/install.sh @@ -116,5 +116,26 @@ elif [ $desktopChoice = 4 ]; then fi # Install -sudo nixos-install --impure --flake /mnt/etc/nixos#vm +if [ $deviceChoice = 1 ]; then + echo "shepard" + +elif [ $deviceChoice = 2 ]; then + echo "garrus" + +elif [ $deviceChoice = 3 ]; then + echo "hp-omen" + +elif [ $deviceChoice = 4 ]; then + echo "pbp" + +elif [ $deviceChoice = 5 ]; then + echo "thelio-nvidia" + +elif [ $deviceChoice = 6 ]; then + echo "darp9" + +elif [ $deviceChoice = 7 ]; then + sudo nixos-install --impure --flake /mnt/etc/nixos#vm + fi + #sudo nixos-install From d947ea93b2971ed7395a4287734d652a4bc6b344 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 8 Jan 2024 18:27:35 +0000 Subject: [PATCH 132/228] Test new nixos-install --- install.sh | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/install.sh b/install.sh index 9351704..ed942bb 100644 --- a/install.sh +++ b/install.sh @@ -116,26 +116,5 @@ elif [ $desktopChoice = 4 ]; then fi # Install -if [ $deviceChoice = 1 ]; then - echo "shepard" - -elif [ $deviceChoice = 2 ]; then - echo "garrus" - -elif [ $deviceChoice = 3 ]; then - echo "hp-omen" - -elif [ $deviceChoice = 4 ]; then - echo "pbp" - -elif [ $deviceChoice = 5 ]; then - echo "thelio-nvidia" - -elif [ $deviceChoice = 6 ]; then - echo "darp9" - -elif [ $deviceChoice = 7 ]; then - sudo nixos-install --impure --flake /mnt/etc/nixos#vm - fi - +sudo nixos-install --flake #sudo nixos-install From 928af8b3d7a27398a42cd123f0392d871c05c5d3 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 8 Jan 2024 18:31:29 +0000 Subject: [PATCH 133/228] You do need to set the system name in the nixos-install command for it to work --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index ed942bb..6ef4bc3 100644 --- a/install.sh +++ b/install.sh @@ -116,5 +116,5 @@ elif [ $desktopChoice = 4 ]; then fi # Install -sudo nixos-install --flake +sudo nixos-install --flake /mnt/etc/nixos#vm #sudo nixos-install From 6390329d069603acc40e35effe06a384a47753f3 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 9 Jan 2024 14:35:17 +0000 Subject: [PATCH 134/228] Add generic flake option --- install.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 6ef4bc3..c4a8521 100644 --- a/install.sh +++ b/install.sh @@ -45,7 +45,7 @@ Which device are you installing to? 5) Thelio NVIDIA (thelio-b1) 6) Darter Pro (darp9) 7) Virtual Machine - 0) None or N/A + 0) Generic EOF read deviceChoice @@ -81,6 +81,10 @@ elif [ $deviceChoice = 6 ]; then elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + +elif [ $deviceChoice = 7 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + fi cat << EOF @@ -116,5 +120,5 @@ elif [ $desktopChoice = 4 ]; then fi # Install -sudo nixos-install --flake /mnt/etc/nixos#vm +sudo nixos-install --flake /mnt/etc/nixos#nixos #sudo nixos-install From 14b72a9dcd7fdaf4d2423af90bb74865af7c3e21 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 9 Jan 2024 14:35:42 +0000 Subject: [PATCH 135/228] Fix new option --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index c4a8521..9d3c860 100644 --- a/install.sh +++ b/install.sh @@ -82,7 +82,7 @@ elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ -elif [ $deviceChoice = 7 ]; then +elif [ $deviceChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ fi From 490a41279522926dc40fdf59d00a95cd8193bcd1 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 9 Jan 2024 19:49:47 +0000 Subject: [PATCH 136/228] Switch other systems to the generic flake and remove extra line at the end of the script --- install.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 9d3c860..c3ec5cd 100644 --- a/install.sh +++ b/install.sh @@ -53,15 +53,15 @@ read deviceChoice # Update the second command to the file name that matches your system .nix file if [ $deviceChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./shepard.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./garrus.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 4 ]; then @@ -69,10 +69,8 @@ elif [ $deviceChoice = 4 ]; then sudo sed -i "11 i \ ./jaal.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo sed -i "11 i \ ./thelio-nvidia.nix" /mnt/etc/nixos/configuration.nix - # Disable latest kernel for Thelio with NVIDIA GPU - sudo sed -i "s/boot.kernelPackages/# boot.kernelPackages/g" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 6 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/darp9.nix > darp9.nix; sudo mv -f darp9.nix /mnt/etc/nixos/ From 3ed0d05b054f29f4fde690e3eeb57047fb1a9123 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 9 Jan 2024 19:55:22 +0000 Subject: [PATCH 137/228] Revert change but swap configuration.nix to flake.nix --- install.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index c3ec5cd..8ccf085 100644 --- a/install.sh +++ b/install.sh @@ -32,7 +32,7 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos echo "Default username and password are in the configuration.nix file" echo "Password is hashed so it is not plaintext" -#curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ cat << EOF @@ -53,15 +53,15 @@ read deviceChoice # Update the second command to the file name that matches your system .nix file if [ $deviceChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos sudo sed -i "11 i \ ./shepard.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos sudo sed -i "11 i \ ./garrus.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/hp-omen/configuration.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 4 ]; then @@ -69,7 +69,7 @@ elif [ $deviceChoice = 4 ]; then sudo sed -i "11 i \ ./jaal.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos sudo sed -i "11 i \ ./thelio-nvidia.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 6 ]; then From b5f977e403b36ddc25fa321c960ab8da69d8a091 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 9 Jan 2024 19:56:10 +0000 Subject: [PATCH 138/228] Update messaging --- install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 8ccf085..d8e4538 100644 --- a/install.sh +++ b/install.sh @@ -8,7 +8,6 @@ lsblk -f # Choice the drive to use : # 1. echo "----------" -echo "" echo "Which drive do we want to use for this installation?" read driveName @@ -29,8 +28,10 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos # Copy my base nix configs over # Change the URL to match where you are hosting your .nix file(s). -echo "Default username and password are in the configuration.nix file" +echo "" +echo "Default username and password are in the flake.nix file" echo "Password is hashed so it is not plaintext" +echo "" curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ From fb7de0dbe85cb7e9488b78425c8fef29f057a7a0 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 9 Jan 2024 20:02:19 +0000 Subject: [PATCH 139/228] Remove unneeded VM config.nix file --- install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install.sh b/install.sh index d8e4538..a80817f 100644 --- a/install.sh +++ b/install.sh @@ -79,7 +79,6 @@ elif [ $deviceChoice = 6 ]; then elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ - #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ elif [ $deviceChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ From 1641a786f012983fb39905125b0dabf3221085d1 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 11 Jan 2024 18:56:30 +0000 Subject: [PATCH 140/228] Clean up comments in the code to make it more readable hopefully --- install.sh | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/install.sh b/install.sh index a80817f..73d3d2a 100644 --- a/install.sh +++ b/install.sh @@ -5,8 +5,9 @@ ramTotal=$(free -h | awk '/^Mem:/{print $2}'| awk -FG {'print$1'}) # Detect and list the drives. lsblk -f +# Step 1: Choosing the drive for the installation + # Choice the drive to use : -# 1. echo "----------" echo "Which drive do we want to use for this installation?" read driveName @@ -18,6 +19,8 @@ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/partitions/luks-btrfs-s # Replace drive in Disko file sudo sed -i "s#/dev/sda#$driveName#g" /tmp/disko-config.nix +# Step 2: Partitioning the drive used for the installation + # Run Disko to partition the disk sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix @@ -25,16 +28,10 @@ sudo nix --experimental-features "nix-command flakes" run github:nix-community/d sudo nixos-generate-config --no-filesystems --root /mnt sudo mv /tmp/disko-config.nix /mnt/etc/nixos -# Copy my base nix configs over -# Change the URL to match where you are hosting your .nix file(s). - -echo "" -echo "Default username and password are in the flake.nix file" -echo "Password is hashed so it is not plaintext" -echo "" - +# Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ -#curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/programs.nix > programs.nix; sudo mv -f programs.nix /mnt/etc/nixos/ + +# Step 3: Choosing a predefined system flake file to use cat << EOF @@ -50,9 +47,6 @@ Which device are you installing to? EOF read deviceChoice -# Change the URL to match where you are hosting your system .nix file -# Update the second command to the file name that matches your system .nix file - if [ $deviceChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos sudo sed -i "11 i \ ./shepard.nix" /mnt/etc/nixos/configuration.nix @@ -85,6 +79,8 @@ elif [ $deviceChoice = 0 ]; then fi +# Step 4: Choosing a predefined desktop/window manager file to use + cat << EOF Which Desktop Environment do you want? @@ -96,9 +92,6 @@ Which Desktop Environment do you want? EOF read desktopChoice -# Change the URL to match where you are hosting your DE/WM .nix file -# Update the second command to the file name that matches your DE/WM .nix file - if [ $desktopChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix From 8d26d86a5d7a6f7bb1c6534c6339262eb54bc111 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 16 Jan 2024 16:23:22 +0000 Subject: [PATCH 141/228] Download home-manager file --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index 73d3d2a..5e9e993 100644 --- a/install.sh +++ b/install.sh @@ -30,6 +30,7 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos # Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ # Step 3: Choosing a predefined system flake file to use From 8063942f61ebd625d1a30871843ddf3419d457c5 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 16 Jan 2024 17:35:02 +0000 Subject: [PATCH 142/228] Add Dev One, remove desktops for now. --- install.sh | 40 +++++----------------------------------- 1 file changed, 5 insertions(+), 35 deletions(-) diff --git a/install.sh b/install.sh index 5e9e993..7d04c91 100644 --- a/install.sh +++ b/install.sh @@ -44,6 +44,7 @@ Which device are you installing to? 5) Thelio NVIDIA (thelio-b1) 6) Darter Pro (darp9) 7) Virtual Machine + 8) HP Dev One 0) Generic EOF read deviceChoice @@ -75,42 +76,11 @@ elif [ $deviceChoice = 6 ]; then elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ +elif [ $deviceChoice = 8 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#dev-one + elif [ $deviceChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ fi - -# Step 4: Choosing a predefined desktop/window manager file to use - -cat << EOF - -Which Desktop Environment do you want? - 1) Plasma - 2) GNOME - 3) Pantheon - 4) Sway - 0) None or N/A -EOF -read desktopChoice - -if [ $desktopChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/plasma.nix > plasma.nix; sudo mv -f plasma.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./plasma.nix" /mnt/etc/nixos/configuration.nix - -elif [ $desktopChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./gnome.nix" /mnt/etc/nixos/configuration.nix - -elif [ $desktopChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/pantheon.nix > pantheon.nix; sudo mv -f pantheon.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./pantheon.nix" /mnt/etc/nixos/configuration.nix - -elif [ $desktopChoice = 4 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/sway.nix > sway.nix; sudo mv -f sway.nix /mnt/etc/nixos/ - sudo sed -i "10 i \ ./sway.nix" /mnt/etc/nixos/configuration.nix - -fi - -# Install -sudo nixos-install --flake /mnt/etc/nixos#nixos -#sudo nixos-install From 553650b883fe0f2b3d8cd21db27f280cd1dc074b Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 16 Jan 2024 17:39:34 +0000 Subject: [PATCH 143/228] Update paths for dev-one and nixos generic --- install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.sh b/install.sh index 7d04c91..bba7011 100644 --- a/install.sh +++ b/install.sh @@ -75,9 +75,11 @@ elif [ $deviceChoice = 6 ]; then elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#nixos elif [ $deviceChoice = 8 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#dev-one elif [ $deviceChoice = 0 ]; then From 9ff54a086411af1058a851ff42ed9a5c1576940a Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 16 Jan 2024 17:47:02 +0000 Subject: [PATCH 144/228] Update install.sh --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index bba7011..09c566a 100644 --- a/install.sh +++ b/install.sh @@ -74,11 +74,11 @@ elif [ $deviceChoice = 6 ]; then sudo sed -i "11 i \ ./darp9.nix" /mnt/etc/nixos/configuration.nix elif [ $deviceChoice = 7 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos elif [ $deviceChoice = 8 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#dev-one From 1d5a54e841400fcbcfc7c557da0a64d09fbc6d88 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 16 Jan 2024 18:03:15 +0000 Subject: [PATCH 145/228] remove other devices for now. --- install.sh | 37 ++++--------------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) diff --git a/install.sh b/install.sh index 09c566a..8a97160 100644 --- a/install.sh +++ b/install.sh @@ -37,47 +37,18 @@ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/home.nix > home.nix; s cat << EOF Which device are you installing to? - 1) Home Desktop - Shepard - 2) Galago Pro (galp3-b) - Garrus - 3) HP Omen (15-dh0015nr) - 4) Pinebook Pro - Jaal - 5) Thelio NVIDIA (thelio-b1) - 6) Darter Pro (darp9) - 7) Virtual Machine - 8) HP Dev One + 1) Virtual Machine + 2) HP Dev One 0) Generic EOF read deviceChoice if [ $deviceChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos - sudo sed -i "11 i \ ./shepard.nix" /mnt/etc/nixos/configuration.nix - -elif [ $deviceChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos - sudo sed -i "11 i \ ./garrus.nix" /mnt/etc/nixos/configuration.nix - -elif [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/hp-omen/configuration.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos - sudo sed -i "11 i \ ./hp-omen.nix" /mnt/etc/nixos/configuration.nix - -elif [ $deviceChoice = 4 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/aarch64/jaal/pbp.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./jaal.nix" /mnt/etc/nixos/configuration.nix - -elif [ $deviceChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos - sudo sed -i "11 i \ ./thelio-nvidia.nix" /mnt/etc/nixos/configuration.nix - -elif [ $deviceChoice = 6 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/darp9.nix > darp9.nix; sudo mv -f darp9.nix /mnt/etc/nixos/ - sudo sed -i "11 i \ ./darp9.nix" /mnt/etc/nixos/configuration.nix - -elif [ $deviceChoice = 7 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos -elif [ $deviceChoice = 8 ]; then +elif [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#dev-one From 5cacafbea4d4fb1d5478b065f9d72a0786cf0fe6 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 16 Jan 2024 19:53:00 +0000 Subject: [PATCH 146/228] Update VM setup --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 8a97160..ede6e2f 100644 --- a/install.sh +++ b/install.sh @@ -45,8 +45,8 @@ read deviceChoice if [ $deviceChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#nixos + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#vm elif [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ From 054635f1fcc69d28726075003cd8e81d46a1e763 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 17 Jan 2024 13:17:08 +0000 Subject: [PATCH 147/228] Update install.sh --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index ede6e2f..12fff6a 100644 --- a/install.sh +++ b/install.sh @@ -30,6 +30,7 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos # Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ # Step 3: Choosing a predefined system flake file to use From b637d3bfe2d1f15eb43485e2260e94aceefdfb36 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 18 Jan 2024 13:58:07 +0000 Subject: [PATCH 148/228] Update install.sh --- install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install.sh b/install.sh index 12fff6a..32a2e7d 100644 --- a/install.sh +++ b/install.sh @@ -28,6 +28,9 @@ sudo nix --experimental-features "nix-command flakes" run github:nix-community/d sudo nixos-generate-config --no-filesystems --root /mnt sudo mv /tmp/disko-config.nix /mnt/etc/nixos +# Removes generated configuration file as it's being replaced with our own +sudo rm /mnt/etc/nixos/configuration.nix + # Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ From 7a6c1f5104e915c51c38ddfd11ce4df817ac117d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 18 Jan 2024 14:02:57 +0000 Subject: [PATCH 149/228] Remove custom VM line --- install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install.sh b/install.sh index 32a2e7d..cf37b95 100644 --- a/install.sh +++ b/install.sh @@ -49,7 +49,6 @@ read deviceChoice if [ $deviceChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#vm elif [ $deviceChoice = 2 ]; then From 82791c73b16276f96d551ab4db5d63ae349f1e05 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 18 Jan 2024 14:20:22 +0000 Subject: [PATCH 150/228] Import vm configuration file --- install.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/install.sh b/install.sh index cf37b95..8a74ce3 100644 --- a/install.sh +++ b/install.sh @@ -28,9 +28,6 @@ sudo nix --experimental-features "nix-command flakes" run github:nix-community/d sudo nixos-generate-config --no-filesystems --root /mnt sudo mv /tmp/disko-config.nix /mnt/etc/nixos -# Removes generated configuration file as it's being replaced with our own -sudo rm /mnt/etc/nixos/configuration.nix - # Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ @@ -49,6 +46,7 @@ read deviceChoice if [ $deviceChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#vm elif [ $deviceChoice = 2 ]; then From 6fe8c907b251964bdc4ce468520dafa6c906eaa9 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 18 Jan 2024 14:23:43 +0000 Subject: [PATCH 151/228] Add example of drive path --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index 8a74ce3..20c8475 100644 --- a/install.sh +++ b/install.sh @@ -10,6 +10,7 @@ lsblk -f # Choice the drive to use : echo "----------" echo "Which drive do we want to use for this installation?" +echo "For example /dev/sda or /dev/nvme0n1" read driveName # Download Disko file From 09a5f2418544ac949ec4eff0b883dcfc76bc3b6e Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 18 Jan 2024 14:24:26 +0000 Subject: [PATCH 152/228] Move fi over to make the code look cleaner --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 20c8475..1f9d314 100644 --- a/install.sh +++ b/install.sh @@ -58,4 +58,4 @@ elif [ $deviceChoice = 2 ]; then elif [ $deviceChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ - fi +fi From d355c4ec3eda299db7947c75e49978bc24c84c28 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 18 Jan 2024 15:46:32 +0000 Subject: [PATCH 153/228] Add generic option from the flake --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index 1f9d314..424737f 100644 --- a/install.sh +++ b/install.sh @@ -57,5 +57,6 @@ elif [ $deviceChoice = 2 ]; then elif [ $deviceChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#nixos fi From c3ae7e37dd618ed0e53f213b7f12dd76686cdb54 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 18 Jan 2024 16:51:13 +0000 Subject: [PATCH 154/228] Update install.sh --- install.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 424737f..8c08fe8 100644 --- a/install.sh +++ b/install.sh @@ -46,12 +46,10 @@ EOF read deviceChoice if [ $deviceChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/vm.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/vm.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#vm elif [ $deviceChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#dev-one From a58e322a5b3517d35f1e3ee15cb04cc1af036b33 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 19 Jan 2024 13:38:59 +0000 Subject: [PATCH 155/228] Add thelio-b1 --- install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install.sh b/install.sh index 8c08fe8..cc50d89 100644 --- a/install.sh +++ b/install.sh @@ -53,6 +53,10 @@ elif [ $deviceChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#dev-one +elif [ $deviceChoice = 3 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#thelio-b1 + elif [ $deviceChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos From 4933f6d0e6c1ac2d9a19f7fbcae7603b51873638 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 23 Jan 2024 20:06:48 +0000 Subject: [PATCH 156/228] Add thelio-b1 --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index cc50d89..bfe0b00 100644 --- a/install.sh +++ b/install.sh @@ -41,6 +41,7 @@ cat << EOF Which device are you installing to? 1) Virtual Machine 2) HP Dev One + 3) Thelio B1 (NVIDIA) 0) Generic EOF read deviceChoice From 999acc5296a5c07e4fc81ae8fbea2f9ff8333ed3 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 25 Jan 2024 22:54:51 +0000 Subject: [PATCH 157/228] Add galp3b --- install.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/install.sh b/install.sh index bfe0b00..c3f4745 100644 --- a/install.sh +++ b/install.sh @@ -42,6 +42,7 @@ Which device are you installing to? 1) Virtual Machine 2) HP Dev One 3) Thelio B1 (NVIDIA) + 4) Galago Pro 3b (Garrus) 0) Generic EOF read deviceChoice @@ -58,6 +59,10 @@ elif [ $deviceChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#thelio-b1 +elif [ $deviceChoice = 4 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#garrus + elif [ $deviceChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos From dc1aa54f75a3949631c5834dc054628a92e941b1 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 25 Jan 2024 23:59:37 +0000 Subject: [PATCH 158/228] GNOME download for Thelio B1 and Galago 3B --- install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.sh b/install.sh index c3f4745..802859e 100644 --- a/install.sh +++ b/install.sh @@ -57,10 +57,12 @@ elif [ $deviceChoice = 2 ]; then elif [ $deviceChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#thelio-b1 elif [ $deviceChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#garrus elif [ $deviceChoice = 0 ]; then From 50744893ffd4027ad1a8989cd390ad926614b6ca Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 30 Jan 2024 17:42:06 +0000 Subject: [PATCH 159/228] Change from flake to main branch now that nix-configs change has been merged. --- install.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 802859e..35804a3 100644 --- a/install.sh +++ b/install.sh @@ -30,9 +30,9 @@ sudo nixos-generate-config --no-filesystems --root /mnt sudo mv /tmp/disko-config.nix /mnt/etc/nixos # Downloads and places the predefinded generic flake to use -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ # Step 3: Choosing a predefined system flake file to use @@ -48,7 +48,7 @@ EOF read deviceChoice if [ $deviceChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/vm.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#vm elif [ $deviceChoice = 2 ]; then @@ -56,12 +56,12 @@ elif [ $deviceChoice = 2 ]; then sudo nixos-install --flake /mnt/etc/nixos#dev-one elif [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#thelio-b1 elif [ $deviceChoice = 4 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/systems/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#garrus From 9e353184de88445bba41b26d6fdcfc221e70db31 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 30 Jan 2024 17:43:17 +0000 Subject: [PATCH 160/228] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 33eeee7..72c4abd 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,8 @@ At the core of this installer it does the following: - Partition the drive of your choice - Installs a base of NixOS (`configuration.nix`) -- Installs a DE/WM of your choice (currently supporting GNOME, Plasma, Pantheon and Sway) - Installs needed packages for certain hardware +- Installs home-manager, sets the home.nix file into /etc/nixos/ so that it is updated with the rest of the system nix files are from [this repo](https://gitlab.com/ahoneybun/nix-configs/) but that can be changed as needed. @@ -20,8 +20,8 @@ Tested on the following architectures: This sets the hashedPassword to my own so you will need to update it to match your own as well as the username. I created the hash with this command: -``` -sudo mkpasswd -m sha-512 +```bash +mkpasswd -m sha-512 ``` ## Get Started From c67b546b01a2c920e631e9ea1f1abc0858ae761f Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 30 Jan 2024 22:27:18 +0000 Subject: [PATCH 161/228] Update README.md --- README.md | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) diff --git a/README.md b/README.md index 72c4abd..3cdd96a 100644 --- a/README.md +++ b/README.md @@ -23,51 +23,3 @@ This sets the hashedPassword to my own so you will need to update it to match yo ```bash mkpasswd -m sha-512 ``` - -## Get Started - -Prerequisites: - -- Prepare an installation medium. -- Boot the live environment. -- Connect to internet. - -## Connect to internet - -```sh -> add_network -0 -> set_network 0 ssid "myhomenetwork" -OK -> set_network 0 psk "mypassword" -OK -> set_network 0 key_mgmt WPA-PSK -OK -> enable_network 0 -OK -``` - -https://nixos.org/manual/nixos/stable/index.html#sec-installation-booting-networking - -## Start the installer - -```sh -sh <(curl -L https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) -``` - -The following will happen: - -- Clear partition table for `/dev/***`. -- Creates a GPT partition table for `/dev/***`. -- Creates a 1GB EFI partiton at `/dev/***1`. -- Creates a 4GB Swap partition at `/dev/***3`. -- Creates a root partition with the rest of the space at `/dev/***2`. -- Installs systemd-boot - -## Roadmap - -- [x] Merge ARM64 and x86_64 together into one branch - -# Possible Ideas - -- [ ] Install nix-channels such as `nixos-hardware` and `home-manager` after install. From 46517ae8c8a6e1fa32a21005dcb894ca85053454 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 30 Jan 2024 16:01:24 -0700 Subject: [PATCH 162/228] add shepard to options --- install.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/install.sh b/install.sh index 35804a3..ef97258 100644 --- a/install.sh +++ b/install.sh @@ -43,6 +43,7 @@ Which device are you installing to? 2) HP Dev One 3) Thelio B1 (NVIDIA) 4) Galago Pro 3b (Garrus) + 5) Nebula49 (Shepard) 0) Generic EOF read deviceChoice @@ -65,6 +66,11 @@ elif [ $deviceChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#garrus +elif [ $deviceChoice = 5 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/rawmain/systems/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#shepard + elif [ $deviceChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos From 8e91b6cc041be2c5fda93de8a5db8fadf3e14d27 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 30 Jan 2024 23:54:24 +0000 Subject: [PATCH 163/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index ef97258..7a32d8e 100644 --- a/install.sh +++ b/install.sh @@ -67,7 +67,7 @@ elif [ $deviceChoice = 4 ]; then sudo nixos-install --flake /mnt/etc/nixos#garrus elif [ $deviceChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/rawmain/systems/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard From eea3b738ec76f6dfbda1aac6d3306c8c94a4af2a Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 31 Jan 2024 08:02:31 -0700 Subject: [PATCH 164/228] change: use hosts instead of systems --- install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 7a32d8e..3fb8a75 100644 --- a/install.sh +++ b/install.sh @@ -49,7 +49,7 @@ EOF read deviceChoice if [ $deviceChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/vm.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/vm.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#vm elif [ $deviceChoice = 2 ]; then @@ -57,17 +57,17 @@ elif [ $deviceChoice = 2 ]; then sudo nixos-install --flake /mnt/etc/nixos#dev-one elif [ $deviceChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#thelio-b1 elif [ $deviceChoice = 4 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#garrus elif [ $deviceChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/systems/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard From 2704e92aea763b37806ad68dc0f0c5d3ed043e0b Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 1 Feb 2024 10:32:34 -0700 Subject: [PATCH 165/228] chore: reorder and add comments to make code cleaner --- install.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/install.sh b/install.sh index 3fb8a75..402790e 100644 --- a/install.sh +++ b/install.sh @@ -2,34 +2,34 @@ # then sets it as a variable for hibernation support ramTotal=$(free -h | awk '/^Mem:/{print $2}'| awk -FG {'print$1'}) -# Detect and list the drives. -lsblk -f - # Step 1: Choosing the drive for the installation -# Choice the drive to use : +## Detect and list the drives. +lsblk -f + +## Choice the drive to use : echo "----------" echo "Which drive do we want to use for this installation?" echo "For example /dev/sda or /dev/nvme0n1" read driveName -# Download Disko file +## Download Disko file cd /tmp curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/partitions/luks-btrfs-subvolumes.nix -o /tmp/disko-config.nix -# Replace drive in Disko file +## Replace drive in Disko file sudo sed -i "s#/dev/sda#$driveName#g" /tmp/disko-config.nix # Step 2: Partitioning the drive used for the installation -# Run Disko to partition the disk +## Run Disko to partition the disk sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix -# Generate Nix configuration +## Generate Nix configuration sudo nixos-generate-config --no-filesystems --root /mnt sudo mv /tmp/disko-config.nix /mnt/etc/nixos -# Downloads and places the predefinded generic flake to use +## Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ From beb42a25e9cd569f1b6339b202471ffb7c664303 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 1 Feb 2024 23:58:29 +0000 Subject: [PATCH 166/228] add omen and reorder hosts --- install.sh | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/install.sh b/install.sh index 402790e..38c67c4 100644 --- a/install.sh +++ b/install.sh @@ -41,37 +41,43 @@ cat << EOF Which device are you installing to? 1) Virtual Machine 2) HP Dev One - 3) Thelio B1 (NVIDIA) - 4) Galago Pro 3b (Garrus) - 5) Nebula49 (Shepard) + 3) HP Omen + 4) Thelio B1 (NVIDIA) + 5) Galago Pro 3b (Garrus) + 6) Nebula49 (Shepard) 0) Generic EOF -read deviceChoice +read hostChoice -if [ $deviceChoice = 1 ]; then +if [ $hostChoice = 1 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/vm.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#vm -elif [ $deviceChoice = 2 ]; then +elif [ $hostChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#dev-one -elif [ $deviceChoice = 3 ]; then +elif [ $hostChoice = 3 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#omen + +elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#thelio-b1 -elif [ $deviceChoice = 4 ]; then +elif [ $hostChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#garrus -elif [ $deviceChoice = 5 ]; then +elif [ $hostChoice = 6 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard -elif [ $deviceChoice = 0 ]; then +elif [ $hostChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos From e6006b70ec3d62250edf73b1063691fd6884723b Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 9 Feb 2024 06:53:38 -0700 Subject: [PATCH 167/228] add: Jaal --- install.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/install.sh b/install.sh index 38c67c4..888f70d 100644 --- a/install.sh +++ b/install.sh @@ -30,7 +30,7 @@ sudo nixos-generate-config --no-filesystems --root /mnt sudo mv /tmp/disko-config.nix /mnt/etc/nixos ## Downloads and places the predefinded generic flake to use -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ @@ -41,9 +41,9 @@ cat << EOF Which device are you installing to? 1) Virtual Machine 2) HP Dev One - 3) HP Omen - 4) Thelio B1 (NVIDIA) - 5) Galago Pro 3b (Garrus) + 3) Thelio B1 (NVIDIA) + 4) Galago Pro 3b (Garrus) + 5) Pinebook Pro (Jaal) 6) Nebula49 (Shepard) 0) Generic EOF @@ -58,19 +58,19 @@ elif [ $hostChoice = 2 ]; then sudo nixos-install --flake /mnt/etc/nixos#dev-one elif [ $hostChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/hp-omen.nix > hp-omen.nix; sudo mv -f hp-omen.nix /mnt/etc/nixos/ - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#omen - -elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#thelio-b1 -elif [ $hostChoice = 5 ]; then +elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#garrus + +elif [ $hostChoice = 5 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/aarch64/jaal/pinebook-pro.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#jaal elif [ $hostChoice = 6 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ From 4720940db1cd89c13b2d1062eb78ab8b31b7e452 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 9 Feb 2024 07:56:12 -0700 Subject: [PATCH 168/228] fix: update links for correct branch for jaal testing --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 888f70d..fd6ca93 100644 --- a/install.sh +++ b/install.sh @@ -31,8 +31,8 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos ## Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ # Step 3: Choosing a predefined system flake file to use @@ -68,7 +68,7 @@ elif [ $hostChoice = 4 ]; then sudo nixos-install --flake /mnt/etc/nixos#garrus elif [ $hostChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/aarch64/jaal/pinebook-pro.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/hosts/aarch64/jaal/pinebook-pro.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#jaal From cfa9051d9eab33f22c0ba9f178fd22dd383fa918 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 9 Feb 2024 08:33:12 -0700 Subject: [PATCH 169/228] change: rename pinebook-pro file --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index fd6ca93..ccb334c 100644 --- a/install.sh +++ b/install.sh @@ -68,7 +68,7 @@ elif [ $hostChoice = 4 ]; then sudo nixos-install --flake /mnt/etc/nixos#garrus elif [ $hostChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/hosts/aarch64/jaal/pinebook-pro.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/hosts/aarch64/jaal/configuration.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#jaal From 0cce412a56ee0ea5e7404847274f0a234ddd462b Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 9 Feb 2024 08:37:03 -0700 Subject: [PATCH 170/228] match the installer --- install.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index ccb334c..7c10dac 100644 --- a/install.sh +++ b/install.sh @@ -30,9 +30,9 @@ sudo nixos-generate-config --no-filesystems --root /mnt sudo mv /tmp/disko-config.nix /mnt/etc/nixos ## Downloads and places the predefinded generic flake to use -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ # Step 3: Choosing a predefined system flake file to use @@ -68,7 +68,7 @@ elif [ $hostChoice = 4 ]; then sudo nixos-install --flake /mnt/etc/nixos#garrus elif [ $hostChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/add-nixos-hardware/hosts/aarch64/jaal/configuration.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/aarch64/jaal/configuration.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#jaal @@ -78,7 +78,7 @@ elif [ $hostChoice = 6 ]; then sudo nixos-install --flake /mnt/etc/nixos#shepard elif [ $hostChoice = 0 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/flake/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos fi From 92c6e47c1924b73e9369f923a3492c423dcb1ea7 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 9 Feb 2024 16:15:08 -0700 Subject: [PATCH 171/228] update README --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3cdd96a..35c6370 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,10 @@ This installer is named after my doggo Onyxia. At the core of this installer it does the following: -- Partition the drive of your choice +- Partition the drive of your choice using Disko +- Uses `flake.nix` to set certain modules depending on the system like nixos-hardware for the Pinebook Pro + - Uses home-manager to manage settings for GNOME (current desktop) and other applications for my user - Installs a base of NixOS (`configuration.nix`) -- Installs needed packages for certain hardware -- Installs home-manager, sets the home.nix file into /etc/nixos/ so that it is updated with the rest of the system nix files are from [this repo](https://gitlab.com/ahoneybun/nix-configs/) but that can be changed as needed. From b09dbc091b66fcd00110e7cd4eedb66a5ad1fbf3 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 13 Feb 2024 06:49:17 -0700 Subject: [PATCH 172/228] remove: work systems like Thelio and HP Dev One --- install.sh | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/install.sh b/install.sh index 7c10dac..1da3278 100644 --- a/install.sh +++ b/install.sh @@ -40,11 +40,9 @@ cat << EOF Which device are you installing to? 1) Virtual Machine - 2) HP Dev One - 3) Thelio B1 (NVIDIA) - 4) Galago Pro 3b (Garrus) - 5) Pinebook Pro (Jaal) - 6) Nebula49 (Shepard) + 2) Galago Pro 3b (Garrus) + 3) Pinebook Pro (Jaal) + 4) Nebula49 (Shepard) 0) Generic EOF read hostChoice @@ -54,25 +52,16 @@ if [ $hostChoice = 1 ]; then sudo nixos-install --flake /mnt/etc/nixos#vm elif [ $hostChoice = 2 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#dev-one - -elif [ $hostChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/thelio-nvidia.nix > thelio-nvidia.nix; sudo mv -f thelio-nvidia.nix /mnt/etc/nixos/ - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#thelio-b1 - -elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#garrus -elif [ $hostChoice = 5 ]; then +elif [ $hostChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/aarch64/jaal/configuration.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#jaal -elif [ $hostChoice = 6 ]; then +elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard From 1704dd58a77acfed8226532b8d2eb8fd0b835a0a Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 15 Feb 2024 16:35:26 -0700 Subject: [PATCH 173/228] add: EDI --- install.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/install.sh b/install.sh index 1da3278..fe5c389 100644 --- a/install.sh +++ b/install.sh @@ -43,6 +43,7 @@ Which device are you installing to? 2) Galago Pro 3b (Garrus) 3) Pinebook Pro (Jaal) 4) Nebula49 (Shepard) + 5) local Build Server (EDI) 0) Generic EOF read hostChoice @@ -66,6 +67,10 @@ elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard +elif [ $hostChoice = 5 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/EDI/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#edi + elif [ $hostChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos From 3037df6b3e6050d00226d04ccec3f649e63aa8f2 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 15 Feb 2024 17:02:05 -0700 Subject: [PATCH 174/228] change: edi -> EDI --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index fe5c389..f3aa48b 100644 --- a/install.sh +++ b/install.sh @@ -69,7 +69,7 @@ elif [ $hostChoice = 4 ]; then elif [ $hostChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/EDI/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#edi + sudo nixos-install --flake /mnt/etc/nixos#EDI elif [ $hostChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ From cec220bb71a30290fbd0a137d963d092a7ea888e Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 22 Feb 2024 18:10:29 +0000 Subject: [PATCH 175/228] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 35c6370..4a67414 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,12 @@ This installer is named after my doggo Onyxia. +## Starting the Installer + +```bash +sh <(curl -L https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) +``` + At the core of this installer it does the following: - Partition the drive of your choice using Disko From cbe6bcc93e37b79f28ec5e17b27de05fffb04ced Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 22 Feb 2024 18:14:15 +0000 Subject: [PATCH 176/228] Nebula49 -> nebula49 --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index f3aa48b..373f518 100644 --- a/install.sh +++ b/install.sh @@ -42,7 +42,7 @@ Which device are you installing to? 1) Virtual Machine 2) Galago Pro 3b (Garrus) 3) Pinebook Pro (Jaal) - 4) Nebula49 (Shepard) + 4) nebula49 (Shepard) 5) local Build Server (EDI) 0) Generic EOF From 85087fe3580b41bb43c359d97e21660a3398e361 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 29 Feb 2024 16:28:38 +0000 Subject: [PATCH 177/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 373f518..95984e5 100644 --- a/install.sh +++ b/install.sh @@ -43,7 +43,7 @@ Which device are you installing to? 2) Galago Pro 3b (Garrus) 3) Pinebook Pro (Jaal) 4) nebula49 (Shepard) - 5) local Build Server (EDI) + 5) Homelab (EDI) 0) Generic EOF read hostChoice From d89f6afc214e05fdecbe6e1723c90cc8768a066c Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 1 Mar 2024 22:21:32 +0000 Subject: [PATCH 178/228] add: macbook --- install.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/install.sh b/install.sh index 95984e5..f30fbb7 100644 --- a/install.sh +++ b/install.sh @@ -71,6 +71,11 @@ elif [ $hostChoice = 5 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/EDI/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#EDI +elif [ $hostChoice = 6 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/macbook-intel.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#macbook + elif [ $hostChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos From b3825d935bafc2c3e1dcfb3af857074e875a48b5 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 25 Jun 2024 16:03:46 -0600 Subject: [PATCH 179/228] start work on move to 24.05 --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index f30fbb7..04d4ec2 100644 --- a/install.sh +++ b/install.sh @@ -31,8 +31,8 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos ## Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/release-24.05/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/release-24.05/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ # Step 3: Choosing a predefined system flake file to use From 56369f0679f6bb12e66683c4833d5e924c48c690 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 9 Aug 2024 11:30:34 -0600 Subject: [PATCH 180/228] Point to main now and remove unsupported devices --- install.sh | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/install.sh b/install.sh index 04d4ec2..393656f 100644 --- a/install.sh +++ b/install.sh @@ -31,8 +31,8 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos ## Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/release-24.05/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ -curl https://gitlab.com/ahoneybun/nix-configs/-/raw/release-24.05/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ +curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ # Step 3: Choosing a predefined system flake file to use @@ -43,7 +43,6 @@ Which device are you installing to? 2) Galago Pro 3b (Garrus) 3) Pinebook Pro (Jaal) 4) nebula49 (Shepard) - 5) Homelab (EDI) 0) Generic EOF read hostChoice @@ -56,7 +55,7 @@ elif [ $hostChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/garrus/configuration.nix > garrus.nix; sudo mv -f garrus.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#garrus - + elif [ $hostChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/aarch64/jaal/configuration.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ @@ -67,15 +66,6 @@ elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard -elif [ $hostChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/EDI/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#EDI - -elif [ $hostChoice = 6 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/macbook-intel.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#macbook - elif [ $hostChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos From c02b8f0ca3a882ab58aa0386207076ceaff65b33 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 5 Sep 2024 14:09:33 +0000 Subject: [PATCH 181/228] Update install.sh --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 393656f..37f76c5 100644 --- a/install.sh +++ b/install.sh @@ -40,7 +40,7 @@ cat << EOF Which device are you installing to? 1) Virtual Machine - 2) Galago Pro 3b (Garrus) + 2) Galago Pro 5 (Garrus) 3) Pinebook Pro (Jaal) 4) nebula49 (Shepard) 0) Generic From 0f1f29e716f0da0025eefabc32520f14220fee57 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 9 Sep 2024 17:24:20 -0600 Subject: [PATCH 182/228] Remove jaal (pinebook-pro) --- install.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/install.sh b/install.sh index 37f76c5..a516724 100644 --- a/install.sh +++ b/install.sh @@ -41,8 +41,7 @@ cat << EOF Which device are you installing to? 1) Virtual Machine 2) Galago Pro 5 (Garrus) - 3) Pinebook Pro (Jaal) - 4) nebula49 (Shepard) + 3) nebula49 (Shepard) 0) Generic EOF read hostChoice @@ -57,11 +56,6 @@ elif [ $hostChoice = 2 ]; then sudo nixos-install --flake /mnt/etc/nixos#garrus elif [ $hostChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/aarch64/jaal/configuration.nix > jaal.nix; sudo mv -f jaal.nix /mnt/etc/nixos/ - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#jaal - -elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard From b6bd57a20fed7c22cd69a0bb7e451eee677ee13c Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 19 Sep 2024 19:18:01 -0600 Subject: [PATCH 183/228] fix vm path --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index a516724..162ae23 100644 --- a/install.sh +++ b/install.sh @@ -47,7 +47,7 @@ EOF read hostChoice if [ $hostChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/vm.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/configuration.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#vm elif [ $hostChoice = 2 ]; then From 7730df30af073e7173b0c74e0270db90e04723e2 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 15 Oct 2024 19:56:19 +0000 Subject: [PATCH 184/228] add drack --- install.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 162ae23..a8c0371 100644 --- a/install.sh +++ b/install.sh @@ -41,7 +41,8 @@ cat << EOF Which device are you installing to? 1) Virtual Machine 2) Galago Pro 5 (Garrus) - 3) nebula49 (Shepard) + 3) Thinkpad X13s (Drack) + 4) nebula49 (Shepard) 0) Generic EOF read hostChoice @@ -56,6 +57,10 @@ elif [ $hostChoice = 2 ]; then sudo nixos-install --flake /mnt/etc/nixos#garrus elif [ $hostChoice = 3 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/aarch64/drack/configuration.nix > drack.nix; sudo mv -f drack.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#drack + +elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard From 0db2dedde109f3a9e037e71fad105036f54f05b9 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 15 Oct 2024 21:33:15 +0000 Subject: [PATCH 185/228] Update install.sh --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index a8c0371..aaea823 100644 --- a/install.sh +++ b/install.sh @@ -58,6 +58,7 @@ elif [ $hostChoice = 2 ]; then elif [ $hostChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/aarch64/drack/configuration.nix > drack.nix; sudo mv -f drack.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#drack elif [ $hostChoice = 4 ]; then From 816765472726fd269ef095423f5392c1994d8d67 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 25 Oct 2024 22:18:55 +0000 Subject: [PATCH 186/228] add EDI back --- install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install.sh b/install.sh index aaea823..f266c0d 100644 --- a/install.sh +++ b/install.sh @@ -66,6 +66,10 @@ elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard +elif [ $hostChoice = 5 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/edi/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#edi + elif [ $hostChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos From 6c0a6cc602079217378c5055849a60d9654a416d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 25 Oct 2024 22:19:29 +0000 Subject: [PATCH 187/228] finish adding EDI --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index f266c0d..9b348a7 100644 --- a/install.sh +++ b/install.sh @@ -43,6 +43,7 @@ Which device are you installing to? 2) Galago Pro 5 (Garrus) 3) Thinkpad X13s (Drack) 4) nebula49 (Shepard) + 5) Home Server (EDI) 0) Generic EOF read hostChoice From 7541a7a9ad76db0b2a6432ab2d7994e636b7d20c Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Fri, 1 Nov 2024 15:55:41 -0600 Subject: [PATCH 188/228] fix typo --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 9b348a7..e4d9eec 100644 --- a/install.sh +++ b/install.sh @@ -43,7 +43,7 @@ Which device are you installing to? 2) Galago Pro 5 (Garrus) 3) Thinkpad X13s (Drack) 4) nebula49 (Shepard) - 5) Home Server (EDI) + 5) Home Server (EDI) - Do Not Use 0) Generic EOF read hostChoice @@ -68,7 +68,7 @@ elif [ $hostChoice = 4 ]; then sudo nixos-install --flake /mnt/etc/nixos#shepard elif [ $hostChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/edi/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/EDI/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#edi elif [ $hostChoice = 0 ]; then From bb2f3f53d3b209fa3268d0200747bf006c18d87e Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 4 Nov 2024 15:39:14 -0700 Subject: [PATCH 189/228] Rename EDI to edi --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index e4d9eec..0c8851f 100644 --- a/install.sh +++ b/install.sh @@ -68,7 +68,7 @@ elif [ $hostChoice = 4 ]; then sudo nixos-install --flake /mnt/etc/nixos#shepard elif [ $hostChoice = 5 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/EDI/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/edi/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#edi elif [ $hostChoice = 0 ]; then From 99683499bf10ae4dd36d3c9df3b84c485b3b7c88 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 7 Jan 2025 14:28:19 +0000 Subject: [PATCH 190/228] add lemp13 --- install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 0c8851f..3b1fcd8 100644 --- a/install.sh +++ b/install.sh @@ -41,7 +41,7 @@ cat << EOF Which device are you installing to? 1) Virtual Machine 2) Galago Pro 5 (Garrus) - 3) Thinkpad X13s (Drack) + 3) Lemur Pro 13 4) nebula49 (Shepard) 5) Home Server (EDI) - Do Not Use 0) Generic @@ -58,9 +58,9 @@ elif [ $hostChoice = 2 ]; then sudo nixos-install --flake /mnt/etc/nixos#garrus elif [ $hostChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/aarch64/drack/configuration.nix > drack.nix; sudo mv -f drack.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/lemp13.nix > lemp13.nix; sudo mv -f lemp13.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#drack + sudo nixos-install --flake /mnt/etc/nixos#lemp13 elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ From ebd81d3780ff1b01c9080e1652036f220bfbb041 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 27 Jan 2025 12:26:36 -0700 Subject: [PATCH 191/228] swap lemp13 for garrus --- install.sh | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/install.sh b/install.sh index 3b1fcd8..406cc1f 100644 --- a/install.sh +++ b/install.sh @@ -40,10 +40,9 @@ cat << EOF Which device are you installing to? 1) Virtual Machine - 2) Galago Pro 5 (Garrus) - 3) Lemur Pro 13 - 4) nebula49 (Shepard) - 5) Home Server (EDI) - Do Not Use + 2) Lemur Pro 13 (Garrus) + 3) nebula49 (Shepard) + 4) Home Server (EDI) - Do Not Use 0) Generic EOF read hostChoice @@ -57,11 +56,6 @@ elif [ $hostChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#garrus -elif [ $hostChoice = 3 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/lemp13.nix > lemp13.nix; sudo mv -f lemp13.nix /mnt/etc/nixos/ - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#lemp13 - elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ From 0e9001e6bf8a91455e2bc5dbf7a945674dbeddbd Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Sun, 16 Feb 2025 06:14:50 +0000 Subject: [PATCH 192/228] fix numbering for the list --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 406cc1f..dcd1a11 100644 --- a/install.sh +++ b/install.sh @@ -56,12 +56,12 @@ elif [ $hostChoice = 2 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#garrus -elif [ $hostChoice = 4 ]; then +elif [ $hostChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard -elif [ $hostChoice = 5 ]; then +elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/edi/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#edi From 31cce1d9988384e98843eb7e7f62cbc28de009d9 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Mon, 17 Feb 2025 20:01:04 +0000 Subject: [PATCH 193/228] Edit install.sh --- install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.sh b/install.sh index dcd1a11..5650cb2 100644 --- a/install.sh +++ b/install.sh @@ -31,6 +31,8 @@ sudo mv /tmp/disko-config.nix /mnt/etc/nixos ## Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + +## Downloads and places the predefinded generic configuration and home files to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix > configuration.nix; sudo mv -f configuration.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix > home.nix; sudo mv -f home.nix /mnt/etc/nixos/ From 6c8f35c39f110ba12276bf5e44ebaf8bc2fc7a85 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 18 Feb 2025 20:02:01 +0000 Subject: [PATCH 194/228] Interface --- install.sh | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/install.sh b/install.sh index 5650cb2..869e7a2 100644 --- a/install.sh +++ b/install.sh @@ -1,7 +1,3 @@ -# Figure out how much RAM the system has -# then sets it as a variable for hibernation support -ramTotal=$(free -h | awk '/^Mem:/{print $2}'| awk -FG {'print$1'}) - # Step 1: Choosing the drive for the installation ## Detect and list the drives. @@ -11,7 +7,10 @@ lsblk -f echo "----------" echo "Which drive do we want to use for this installation?" echo "For example /dev/sda or /dev/nvme0n1" -read driveName + +echo "" +read -p "Enter your drive choice: " driveName +echo "" ## Download Disko file cd /tmp @@ -23,12 +22,17 @@ sudo sed -i "s#/dev/sda#$driveName#g" /tmp/disko-config.nix # Step 2: Partitioning the drive used for the installation ## Run Disko to partition the disk -sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix +sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount /tmp/disko-config.nix --yes-wipe-all-disks ## Generate Nix configuration sudo nixos-generate-config --no-filesystems --root /mnt + +## Copies over the disko file for running `nixos-install` sudo mv /tmp/disko-config.nix /mnt/etc/nixos +## Confirm that partitions are mounted +lsblk -f + ## Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ @@ -44,13 +48,15 @@ Which device are you installing to? 1) Virtual Machine 2) Lemur Pro 13 (Garrus) 3) nebula49 (Shepard) - 4) Home Server (EDI) - Do Not Use 0) Generic EOF -read hostChoice + +echo "" +read -p "Enter your device choice: " hostChoice +echo "" if [ $hostChoice = 1 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/configuration.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/vm/configuration.nix > vm.nix; sudo mv -f vm.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#vm elif [ $hostChoice = 2 ]; then @@ -63,12 +69,9 @@ elif [ $hostChoice = 3 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard -elif [ $hostChoice = 4 ]; then - curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/edi/configuration.nix > edi.nix; sudo mv -f edi.nix /mnt/etc/nixos/ - sudo nixos-install --flake /mnt/etc/nixos#edi - elif [ $hostChoice = 0 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#nixos fi From 743ca7f3dd167e29f7786af4e1d6af863aab7213 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Tue, 18 Feb 2025 20:02:40 +0000 Subject: [PATCH 195/228] removes debugging lsblk command --- install.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/install.sh b/install.sh index 869e7a2..e7a2c5f 100644 --- a/install.sh +++ b/install.sh @@ -30,9 +30,6 @@ sudo nixos-generate-config --no-filesystems --root /mnt ## Copies over the disko file for running `nixos-install` sudo mv /tmp/disko-config.nix /mnt/etc/nixos -## Confirm that partitions are mounted -lsblk -f - ## Downloads and places the predefinded generic flake to use curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix > flake.nix; sudo mv -f flake.nix /mnt/etc/nixos/ From 14b8ada912cbc1389db1ea10ed4ab530d7b947be Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 12 Mar 2025 15:39:08 -0600 Subject: [PATCH 196/228] add Pixel Slate to installer --- install.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index e7a2c5f..e2810a1 100644 --- a/install.sh +++ b/install.sh @@ -44,7 +44,8 @@ cat << EOF Which device are you installing to? 1) Virtual Machine 2) Lemur Pro 13 (Garrus) - 3) nebula49 (Shepard) + 3) Pixel Slate + 4) nebula49 (Shepard) 0) Generic EOF @@ -62,6 +63,11 @@ elif [ $hostChoice = 2 ]; then sudo nixos-install --flake /mnt/etc/nixos#garrus elif [ $hostChoice = 3 ]; then + curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/pixel-slate.nix > pixel-slate.nix; sudo mv -f pixel-slate.nix /mnt/etc/nixos/ + #curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/lomiri.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ + sudo nixos-install --flake /mnt/etc/nixos#pixel-slate + +elif [ $hostChoice = 4 ]; then curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/shepard/configuration.nix > shepard.nix; sudo mv -f shepard.nix /mnt/etc/nixos/ curl https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix > gnome.nix; sudo mv -f gnome.nix /mnt/etc/nixos/ sudo nixos-install --flake /mnt/etc/nixos#shepard From aebb38df6149f702d55f2f55256eb6d9ad5095a5 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 18:39:19 -0600 Subject: [PATCH 197/228] =?UTF-8?q?First=20Rust=20rewrite=20release!=20?= =?UTF-8?q?=F0=9F=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 8 + Cargo.lock | 758 ++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 10 + README.md | 36 ++- docs/development.md | 47 +++ flake.lock | 96 ++++++ flake.nix | 40 +++ shell.nix | 29 ++ src/main.rs | 380 ++++++++++++++++++++++ 9 files changed, 1389 insertions(+), 15 deletions(-) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 docs/development.md create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 shell.nix create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d1ff78e --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# Rust/Carge +/target + +# Nix +result + +# Main nix files +/data diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..5a5e4e6 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,758 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bindgen" +version = "0.66.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" +dependencies = [ + "bitflags", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "log", + "peeking_take_while", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.100", + "which", +] + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "cc" +version = "1.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" +dependencies = [ + "shlex", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "curl" +version = "0.4.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9fb4d13a1be2b58f14d60adba57c9834b78c62fd86c3e76a148f732686e9265" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2", + "windows-sys 0.52.0", +] + +[[package]] +name = "curl-sys" +version = "0.4.80+curl-8.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55f7df2eac63200c3ab25bde3b2268ef2ee56af3d238e76d61f01c3c49bff734" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "windows-sys 0.52.0", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "embed-doc-image" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af36f591236d9d822425cb6896595658fa558fcebf5ee8accac1d4b92c47166e" +dependencies = [ + "base64", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "enum-iterator" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c280b9e6b3ae19e152d8e31cf47f18389781e119d4013a2a2bb0180e5facc635" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "indexmap" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "io-kit-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2d4429acc1deff0fbdece0325b4997bdb02b2c245ab7023fd5deca0f6348de" +dependencies = [ + "core-foundation-sys", + "mach2", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "libloading" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +dependencies = [ + "cfg-if", + "windows-targets", +] + +[[package]] +name = "libz-sys" +version = "1.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "log" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "mach2" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "nix" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "nyxi-installer" +version = "2.0.0" +dependencies = [ + "curl", + "nix", + "rsfdisk", + "sys_metrics", +] + +[[package]] +name = "once_cell" +version = "1.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "prettyplease" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +dependencies = [ + "proc-macro2", + "syn 2.0.100", +] + +[[package]] +name = "proc-macro-crate" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rsfdisk" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b3cacc1af2ca434035b8c885b1ef4d64a663581df95134653feba07fccae0c" +dependencies = [ + "embed-doc-image", + "enum-iterator", + "libc", + "log", + "num_enum", + "once_cell", + "pkg-config", + "rsfdisk-sys", + "thiserror", + "typed-builder", +] + +[[package]] +name = "rsfdisk-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39b186475d9df76290bba3de5196eeed64b95e77861095ea8b244f962f47575" +dependencies = [ + "bindgen", + "cc", + "pkg-config", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "socket2" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sys_metrics" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9b266b80f59f86e2e1e0a4938e316e32c3730d94a749f236305152279f77484" +dependencies = [ + "core-foundation-sys", + "glob", + "io-kit-sys", + "lazy_static", + "libc", + "mach", + "serde", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "typed-builder" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9d30e3a08026c78f246b173243cf07b3696d274debd26680773b6773c2afc7" +dependencies = [ + "typed-builder-macro", +] + +[[package]] +name = "typed-builder-macro" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c36781cc0e46a83726d9879608e4cf6c2505237e263a8eb8c24502989cfdb28" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +dependencies = [ + "memchr", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..69aee11 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "nyxi-installer" +version = "2.0.0" +edition = "2021" + +[dependencies] +curl = "0.4.47" +nix = { version = "0.29.0", features = ["mount"] } +rsfdisk = "0.1.0" +sys_metrics = "0.2.7" diff --git a/README.md b/README.md index 4a67414..fd5496f 100644 --- a/README.md +++ b/README.md @@ -2,30 +2,36 @@ This installer is named after my doggo Onyxia. -## Starting the Installer - -```bash -sh <(curl -L https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) -``` - At the core of this installer it does the following: -- Partition the drive of your choice using Disko +- Partition the drive of your choice using the `rsfdisk` crate. - Uses `flake.nix` to set certain modules depending on the system like nixos-hardware for the Pinebook Pro - - Uses home-manager to manage settings for GNOME (current desktop) and other applications for my user - Installs a base of NixOS (`configuration.nix`) nix files are from [this repo](https://gitlab.com/ahoneybun/nix-configs/) but that can be changed as needed. -Tested on the following drives: -- SATA -- NVMe - -Tested on the following architectures: -- x86_64 - This sets the hashedPassword to my own so you will need to update it to match your own as well as the username. I created the hash with this command: ```bash mkpasswd -m sha-512 ``` + +# Usage + +1. Boot from a live disk of NixOS (ideally the minimal image) +2. Connect to network +3. Download from the releases page using curl + +```bash +curl $PATH +``` + +## Older Bash installer + +```bash +sh <(curl -L https://gitlab.com/ahoneybun/nyxi-installer/-/raw/main/install.sh) +``` + +# Development + +![docs/development](https://gitlab.com/ahoneybun/nyxi-installer/-/blob/rust-rewrite/docs/development.md) diff --git a/docs/development.md b/docs/development.md new file mode 100644 index 0000000..5808ad7 --- /dev/null +++ b/docs/development.md @@ -0,0 +1,47 @@ +# Development + +## Clone the repository + +```bash +git clone https://gitlab.com/ahoneybun/nyxi-installer.git +``` + +## Enter the repository that you just cloned + +```bash +cd nyxi-installer +``` + +## Enter nix-shell + +This is if you are already running NixOS or using the `nix` packagemanager on your system where development will take place. This will install the needed system packages, set environment variables and such for development. + +```bash +nix-shell +``` + +## Flakes + +If you have flakes enabled you can use `nix develop` instead. + +```bash +nix develop +``` + +## Ubuntu + +Install these packages for developing using `apt`. + +```bash +sudo apt install build-essential pkg-config libcurl4-openssl-dev libfdisk-dev +``` + +## Building and testing + +You can use normal `cargo` commands like: + +- `cargo test` +- `cargo build` +- `cargo run` + +**NOTE:** you will need to build the program and run it with `sudo` currently so `cargo run` is not the best for testing. diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..1d51da6 --- /dev/null +++ b/flake.lock @@ -0,0 +1,96 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "naersk": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1743800763, + "narHash": "sha256-YFKV+fxEpMgP5VsUcM6Il28lI0NlpM7+oB1XxbBAYCw=", + "owner": "nix-community", + "repo": "naersk", + "rev": "ed0232117731a4c19d3ee93aa0c382a8fe754b01", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "naersk", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1744536153, + "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1744536153, + "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "naersk": "naersk", + "nixpkgs": "nixpkgs_2" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..b73e439 --- /dev/null +++ b/flake.nix @@ -0,0 +1,40 @@ +{ + description = "Flake to build and develop Nyxi"; + + inputs = { + flake-utils.url = "github:numtide/flake-utils"; + naersk.url = "github:nix-community/naersk"; + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + }; + + outputs = { self, flake-utils, naersk, nixpkgs }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = (import nixpkgs) { + inherit system; + }; + + naersk' = pkgs.callPackage naersk {}; + + # Setting variables that everything uses + LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib"; + CLANG_PATH = "${pkgs.llvmPackages.clang}/bin/clang"; + + in rec { + # For `nix build` & `nix run`: + defaultPackage = naersk'.buildPackage { + inherit LIBCLANG_PATH CLANG_PATH; + buildInputs = with pkgs; [ pkg-config openssl ]; + nativeBuildInputs = with pkgs; [ util-linux.dev ]; + src = ./.; + }; + + # For `nix develop` (optional, can be skipped): + devShell = pkgs.mkShell { + inherit LIBCLANG_PATH CLANG_PATH; + buildInputs = with pkgs; [ pkg-config openssl ]; + nativeBuildInputs = with pkgs; [ rustc cargo util-linux.dev ]; + }; + } + ); +} diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..7f9e443 --- /dev/null +++ b/shell.nix @@ -0,0 +1,29 @@ +{ pkgs ? import {} }: + + pkgs.mkShell { + buildInputs = with pkgs; [ + # Rust + cargo + rustc + + # Compiler + gnumake + clang + llvmPackages.libclang + llvmPackages.clang + + # System + btrfs-progs + e2fsprogs + openssl + pkg-config + util-linux + ]; + + shellHook = '' + export LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib" + export CLANG_PATH="${pkgs.llvmPackages.clang}/bin/clang" + export RUST_BACKTRACE=1 + echo "We're ready to make some Rust!" + ''; +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..4b9f9e9 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,380 @@ +use rsfdisk::core::partition::{Guid, Partition, PartitionKind}; +use rsfdisk::core::partition_table::PartitionTableKind; +use rsfdisk::fdisk::Fdisk; +use std::fs::File; +use std::io; +use std::io::Write; +use std::path::Path; +use std::process::{Command, Stdio}; +use sys_metrics::disks; + +use curl::easy::Easy; +use nix::mount::{mount, MsFlags}; + +fn format_drive(drive_name: &str) -> rsfdisk::Result<()> { + let mut disk = Fdisk::builder() + .assign_device(drive_name) + .enable_read_write() + .wipe_device_metadata() + .build()?; + + disk.partition_table_create(PartitionTableKind::GPT)?; + + let partition_type = PartitionKind::builder().guid(Guid::EfiSystem).build()?; + + let boot = Partition::builder() + .partition_type(partition_type) + .name("EFI") + //Assuming 512 bytes per sector, 2_097_152 sectors <=> 1 GiB. + .size_in_sectors(2_097_152) + .build()?; + + let _ = disk.partition_add(boot)?; + + let partition_type = PartitionKind::builder() + .guid(Guid::LinuxRootx86_64) + .build()?; + + let root = Partition::builder() + .partition_type(partition_type) + .name("Root") + .build()?; + + let _ = disk.partition_add(root)?; + + disk.partition_table_write_to_disk()?; + + Ok(()) +} + +fn format_partitions(drive_name: &str) { + let efi_path = format!("{}p1", drive_name); + let root_path = format!("{}p2", drive_name); + + let _efi_partition = Command::new("mkfs.fat") + .arg("-F32") + .arg("-n") + .arg("EFI") + .arg(&efi_path) + .output() + .expect("Failed to format boot partition as FAT32"); + + let _root_partition = Command::new("mkfs.ext4") + .arg(&root_path) + .output() + .expect("Failed to format root partition as ext4"); +} + +fn mount_partitions(drive_name: &str) { + let efi_path = format!("{}p1", drive_name); + let root_path = format!("{}p2", drive_name); + + let root_source = Some(Path::new(&root_path)); + let root_target = Path::new("/mnt"); + + mount( + root_source, + root_target, + Some("ext4"), + MsFlags::empty(), + None::<&[u8]>, + ) + .expect("Failed to mount root partition"); + + // Creates the boot directory in /mnt/boot + let _create_boot_directory = Command::new("mkdir") + .arg("-p") + .arg("/mnt/boot") + .output() + .expect("Failed to create boot directory"); + + let boot_source = Some(Path::new(&efi_path)); + let boot_target = Path::new("/mnt/boot"); + + let _mount_boot = Command::new("mount") + .args(["-t", "vfat"]) + .args(["-o", "umask=0077"]) + .arg(&efi_path) + .arg("/mnt/boot") + .output() + .expect("Failed to mount boot partition"); + + // mount( + // boot_source, + // boot_target, + // Some("vfat"), + // MsFlags::empty(), + // None::<&[u8]>, + // ) + // .expect("Failed to mount boot partition"); +} + +fn grab_flake() { + let mut easy = Easy::new(); + easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix") + .unwrap(); + + let mut file = File::create("data/flake.nix").unwrap(); + + { + let mut transfer = easy.transfer(); + transfer + .write_function(|data| { + file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); + transfer.perform().unwrap(); + } +} + +fn grab_config() { + let mut easy = Easy::new(); + easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix") + .unwrap(); + + let mut file = File::create("data/configuration.nix").unwrap(); + + { + let mut transfer = easy.transfer(); + transfer + .write_function(|data| { + file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); + transfer.perform().unwrap(); + } +} + +fn grab_home() { + let mut easy = Easy::new(); + easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix") + .unwrap(); + + let mut file = File::create("data/home.nix").unwrap(); + + { + let mut transfer = easy.transfer(); + transfer + .write_function(|data| { + file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); + transfer.perform().unwrap(); + } +} + +fn grab_gnome() { + let mut gnome_config = Easy::new(); + gnome_config + .url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix") + .unwrap(); + + let mut config_file = File::create("data/gnome.nix").unwrap(); + + { + let mut transfer = gnome_config.transfer(); + transfer + .write_function(|data| { + config_file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); + transfer.perform().unwrap(); + } +} + +fn main() { + println!("--------------------------------------"); + println!("| Welcome to the Nyxi Installer 2.0! |"); + println!("--------------------------------------"); + println!(""); + + println!("Availble disks for installation:"); + println!("---------------------------------"); + println!(""); + + match disks::get_physical_ioblocks() { + Ok(disk_list) => { + for disk in disk_list { + println!("Disk: {}", disk.device_name); + } + } + Err(_e) => println!("{}", _e), + } + + let mut drive_name = String::new(); + + println!(""); + println!("Use the full drive path such as /dev/nvme0n1 or /dev/sda"); + println!(""); + println!( + "Which drive do we want to use for this installation?: {}", + drive_name + ); + + io::stdin() + .read_line(&mut drive_name) + .expect("Failed to read line"); + + let drive_name = drive_name.trim(); + + // Download nix files + grab_flake(); + grab_config(); + grab_home(); + grab_gnome(); + + // Partitioning the selected drive + let _ = format_drive(drive_name); + + // Formatting the partitions + format_partitions(drive_name); + + // Mounting the partitions + mount_partitions(drive_name); + + // Creates the init nix config in /mnt/etc/nixos + let _nixos_gen_config = Command::new("nixos-generate-config") + .arg("--root") + .arg("/mnt") + .output() + .expect("Failed to execute command"); + + // Copies the nix files to /mnt/etc/nixos/ + let _nix_move = Command::new("mv") + .args([ + "-f", + "data/flake.nix", + "data/configuration.nix", + "data/home.nix", + ]) + .arg("/mnt/etc/nixos") + .output() + .expect("Failed to move nix files over"); + + // Fixes a security issue with boot + let _boot_fix = Command::new("sed") + .arg("-i") + .arg( + r#"/fsType = "vfat"/ { + n + s/\(options = \[.*\)\]/\1"umask=0077 "]/ + }"#, + ) + .arg("/mnt/etc/nixos/hardware-configuration.nix") + .output() + .expect("Failed to apply boot fix"); + + // Host selection + loop { + println!(""); + println!("Host selection:"); + println!("---------------"); + println!(""); + println!("1. Lemur Pro 13 (Garrus)"); + println!("2. Virtual Machine"); + println!("3. Generic"); + println!(""); + + println!("Enter your host for installation:"); + + let mut choice = String::new(); + io::stdin().read_line(&mut choice).unwrap(); + + match choice.trim() { + "1" => { + let mut garrus_config = Easy::new(); + garrus_config.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/garrus/configuration.nix").unwrap(); + + let mut config_file = File::create("data/garrus.nix").unwrap(); + + { + let mut transfer = garrus_config.transfer(); + transfer + .write_function(|data| { + config_file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); + transfer.perform().unwrap(); + } + + // Copies the system nix files to /mnt/etc/nixos/ + let _garrus_nix_copy = Command::new("mv") + .args(["data/garrus.nix", "data/gnome.nix", "/mnt/etc/nixos"]) + .output() + .expect("Failed to copy nix files over"); + + let mut nixos_install = Command::new("nixos-install") + .arg("--flake") + .arg("/mnt/etc/nixos#garrus") + .arg("--no-root-passwd") + .stdout(Stdio::inherit()) + .stderr(Stdio::inherit()) + .spawn() + .unwrap(); + + let install_status = nixos_install.wait(); + println!("Exited with status {:?}", install_status); + + break; + } + "2" => { + let mut vm_config = Easy::new(); + vm_config.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/vm/configuration.nix").unwrap(); + + let mut config_file = File::create("data/vm.nix").unwrap(); + + { + let mut transfer = vm_config.transfer(); + transfer + .write_function(|data| { + config_file.write_all(data).unwrap(); + Ok(data.len()) + }) + .unwrap(); + transfer.perform().unwrap(); + } + + // Copies the system nix files to /mnt/etc/nixos/ + let _garrus_nix_copy = Command::new("mv") + .args(["data/vm.nix", "/mnt/etc/nixos"]) + .output() + .expect("Failed to copy nix files over"); + + let mut nixos_install = Command::new("nixos-install") + .arg("--flake") + .arg("/mnt/etc/nixos#vm") + .arg("--no-root-passwd") + .stdout(Stdio::inherit()) + .stderr(Stdio::inherit()) + .spawn() + .unwrap(); + + let install_status = nixos_install.wait(); + println!("Exited with status {:?}", install_status); + + break; + } + "3" => { + let mut nixos_install = Command::new("nixos-install") + .arg("--flake") + .arg("/mnt/etc/nixos#nixos") + .arg("--no-root-passwd") + .stdout(Stdio::inherit()) + .stderr(Stdio::inherit()) + .spawn() + .unwrap(); + + let install_status = nixos_install.wait(); + println!("Exited with status {:?}", install_status); + + break; + } + _ => println!("Invalid choice, try again."), + } + } +} From 526f90626652ef12587d94cc1a4b6dcfc04601ee Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 18:43:39 -0600 Subject: [PATCH 198/228] comment out variable to fix warning --- src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4b9f9e9..7638f49 100644 --- a/src/main.rs +++ b/src/main.rs @@ -88,8 +88,8 @@ fn mount_partitions(drive_name: &str) { .output() .expect("Failed to create boot directory"); - let boot_source = Some(Path::new(&efi_path)); - let boot_target = Path::new("/mnt/boot"); + //let boot_source = Some(Path::new(&efi_path)); + //let boot_target = Path::new("/mnt/boot"); let _mount_boot = Command::new("mount") .args(["-t", "vfat"]) From 3f0a2b17029ad117be0018bc710a3c20ed84811b Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 18:52:08 -0600 Subject: [PATCH 199/228] testing ci --- .gitlab-ci.yml | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 776bc61..9126f09 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,12 +1,27 @@ -# You can override the included template(s) by including variable overrides -# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings -# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/#customizing-settings -# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings -# Note that environment variables can be set in several places -# See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence -stages: -- test -sast: - stage: test -include: -- template: Security/SAST.gitlab-ci.yml +image: "rust:latest" + +variables: + # move cargo data into the project directory so it can be cached + CARGO_HOME: ${CI_PROJECT_DIR}/.cargo + # treat compiler warnings as errors (in clippy, when running tests, etc.) + RUSTFLAGS: -Dwarnings + +default: + # cancel the job if a newer pipeline starts for the same MR or branch + interruptible: true + cache: + # use the git branch or tag as cache key, so the cache will be + # shared among CI runs for the same branch or tag + key: ${CI_COMMIT_REF_SLUG} + # we cache .cargo/ and target/, which effectively enables + # incremental builds across different executions of the CI + # for the same branch or the same merge request + paths: + - .cargo + - target + +# a format check is run in parallel with the rest +cargo:fmt: + script: + - rustup component add rustfmt + - cargo fmt --check From 62f1c96f5b126caf9806b7e46086ef5b82e16abf Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 19:02:56 -0600 Subject: [PATCH 200/228] testing ci --- .gitlab-ci.yml | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9126f09..f9a6bb9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,27 +1,15 @@ image: "rust:latest" -variables: - # move cargo data into the project directory so it can be cached - CARGO_HOME: ${CI_PROJECT_DIR}/.cargo - # treat compiler warnings as errors (in clippy, when running tests, etc.) - RUSTFLAGS: -Dwarnings - -default: - # cancel the job if a newer pipeline starts for the same MR or branch - interruptible: true - cache: - # use the git branch or tag as cache key, so the cache will be - # shared among CI runs for the same branch or tag - key: ${CI_COMMIT_REF_SLUG} - # we cache .cargo/ and target/, which effectively enables - # incremental builds across different executions of the CI - # for the same branch or the same merge request - paths: - - .cargo - - target - -# a format check is run in parallel with the rest -cargo:fmt: +build-job: + stage: build + image: ubuntu:22.04 + needs: + - job: tests-job + - job: prepare-job + artifacts: true script: - - rustup component add rustfmt - - cargo fmt --check + - echo "======== BUILD JOB ========" + - cargo build --release + artifacts: + paths: + - target/release/nyxi-installer From 93e76db0eb0933673d28be9375eb815d50b15600 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 19:05:10 -0600 Subject: [PATCH 201/228] testing ci --- .gitlab-ci.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f9a6bb9..24df212 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,22 @@ image: "rust:latest" +tests-job: + stage: test + image: rust + script: + - echo "======== TESTS JOB ========" + - cargo test + +prepare-job: + stage: prepare + image: rust + rules: + - if: $CI_COMMIT_TAG + when: never # Do not run this job when a tag is created manually + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch + script: + - echo "======== PREPARE JOB ========" + build-job: stage: build image: ubuntu:22.04 From ef2be5c559099ca7ae2c8436244a727c365daf60 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 19:10:43 -0600 Subject: [PATCH 202/228] mario --- .gitlab-ci.yml | 39 +++++++++------------------------------ 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 24df212..d81deae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,32 +1,11 @@ -image: "rust:latest" - -tests-job: - stage: test - image: rust +run_test: + image: rust:latest + before_script: + - rustup --version + - rustc -vV + - rustup component add clippy + - rustup component add rustfmt script: - - echo "======== TESTS JOB ========" + - cargo clippy -- --deny clippy::pedantic + - cargo fmt --all -- --check - cargo test - -prepare-job: - stage: prepare - image: rust - rules: - - if: $CI_COMMIT_TAG - when: never # Do not run this job when a tag is created manually - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch - script: - - echo "======== PREPARE JOB ========" - -build-job: - stage: build - image: ubuntu:22.04 - needs: - - job: tests-job - - job: prepare-job - artifacts: true - script: - - echo "======== BUILD JOB ========" - - cargo build --release - artifacts: - paths: - - target/release/nyxi-installer From e54dba7840f5da003971e0cc95122920061d1dbe Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 19:16:47 -0600 Subject: [PATCH 203/228] add fdisk for docker --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d81deae..e6b37d9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,7 @@ run_test: - rustc -vV - rustup component add clippy - rustup component add rustfmt + - apt install -y fdisk script: - cargo clippy -- --deny clippy::pedantic - cargo fmt --all -- --check From 1631730a88f1d19eca2c7cf638eb377efd66dc52 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 19:19:11 -0600 Subject: [PATCH 204/228] add fdisk for docker --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e6b37d9..a7c5612 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,7 @@ run_test: - rustc -vV - rustup component add clippy - rustup component add rustfmt - - apt install -y fdisk + - apt install -y libfdisk-dev script: - cargo clippy -- --deny clippy::pedantic - cargo fmt --all -- --check From c2d803c553cfe8d79a7b38566da73573e69f850d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 19:19:11 -0600 Subject: [PATCH 205/228] CI work --- .gitlab-ci.yml | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e6b37d9..6daa052 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,12 +1,28 @@ -run_test: +stages: + - test + - build + - deploy-prod + +test: + stage: test image: rust:latest before_script: - - rustup --version - - rustc -vV - - rustup component add clippy - - rustup component add rustfmt - - apt install -y fdisk + - apt update -m + - apt install -y libfdisk-dev libclang-19-dev script: - - cargo clippy -- --deny clippy::pedantic - - cargo fmt --all -- --check - - cargo test + - cargo test --verbose + +build: + stage: build + image: rust:latest + before_script: + - apt update -m + - apt install -y libfdisk-dev libclang-19-dev + script: + - cargo build --verbose + +deploy-prod: + stage: deploy + script: + - echo "Let's launch!" + environment: production From 469d3820e28d4f1689b005af60c29e1ee6408df5 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 19:59:58 -0600 Subject: [PATCH 206/228] fix --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6daa052..b4e6278 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ stages: - test - build - - deploy-prod + - deploy test: stage: test @@ -21,8 +21,8 @@ build: script: - cargo build --verbose -deploy-prod: - stage: deploy +deploy: + stage: deploy-prod script: - echo "Let's launch!" environment: production From 3537cce31d2e663f33eb0ab709ea8db6101d6f8b Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 20:00:35 -0600 Subject: [PATCH 207/228] fix --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b4e6278..3242832 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,7 @@ build: - cargo build --verbose deploy: - stage: deploy-prod + stage: deploy script: - echo "Let's launch!" environment: production From 563cfda91d792bb90ebe7e8a876acddbfb8b007d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 20:08:48 -0600 Subject: [PATCH 208/228] remove deploy and testing artifacts --- .gitlab-ci.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3242832..46ba0c0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,9 +20,6 @@ build: - apt install -y libfdisk-dev libclang-19-dev script: - cargo build --verbose - -deploy: - stage: deploy - script: - - echo "Let's launch!" - environment: production + artifacts: + paths: + - builds/ahoneybun/nyxi-installer From bef700b7fc542b84005634dfb3189c0c2adeac8d Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 20:11:03 -0600 Subject: [PATCH 209/228] remove deploy and testing artifacts --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 46ba0c0..ac00656 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,5 +21,5 @@ build: script: - cargo build --verbose artifacts: - paths: + paths: - builds/ahoneybun/nyxi-installer From 99aca9a464b3765a937fdcedd62d4c140cfac40f Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 20:14:48 -0600 Subject: [PATCH 210/228] testing artifacts --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ac00656..8738ddf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,4 +22,4 @@ build: - cargo build --verbose artifacts: paths: - - builds/ahoneybun/nyxi-installer + - /builds/ahoneybun/nyxi-installer From 562f0dac53dbad71c6f59ff319e74f2988a93d15 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 20:20:45 -0600 Subject: [PATCH 211/228] building release version and upload --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8738ddf..bab0665 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,7 +19,7 @@ build: - apt update -m - apt install -y libfdisk-dev libclang-19-dev script: - - cargo build --verbose + - cargo build --release --verbose artifacts: paths: - - /builds/ahoneybun/nyxi-installer + - /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer From aaeb2136a9a0890c3abafc0a1cba95fc64f76e34 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Wed, 23 Apr 2025 20:30:09 -0600 Subject: [PATCH 212/228] chmod the build --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bab0665..bd0d5af 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,6 @@ stages: - test - build - - deploy test: stage: test @@ -20,6 +19,7 @@ build: - apt install -y libfdisk-dev libclang-19-dev script: - cargo build --release --verbose + - chmod +x /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer artifacts: paths: - /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer From a6941102a45a12562f035c06b6dc17826fe34739 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 07:06:20 -0600 Subject: [PATCH 213/228] testing upload and release --- .gitlab-ci.yml | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bd0d5af..d029b17 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,11 @@ stages: - test - build + - upload + - release + +variables: + PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/nyxi-installer/${CI_COMMIT_TAG}" test: stage: test @@ -18,8 +23,27 @@ build: - apt update -m - apt install -y libfdisk-dev libclang-19-dev script: - - cargo build --release --verbose + - cargo build --release + - mkdir bin + - mv /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer /bin/nyxi-installer - chmod +x /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer + cache: + paths: + - target/release/ artifacts: - paths: - - /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer + paths: + - bin + +upload: + stage: upload + image: curlimages/curl:latest + rules: + - if: $CI_COMMIT_TAG + script: + - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/nyxi-installer ${PACKAGE_REGISTRY_URL}/nyxi-installer' + +release: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + script: + - 'release-cli create --name "nyxi-installer" --assets-link "{\"name\":\"nyxi-installer\", \"url\":\"${PACKAGE_REGISTRY_URL}/nyxi-installer\"}"' From 1a0de19932150827ada66b847bc1cfe5a2659dd5 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 07:11:43 -0600 Subject: [PATCH 214/228] fix chmod --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d029b17..5b8e510 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,7 +26,7 @@ build: - cargo build --release - mkdir bin - mv /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer /bin/nyxi-installer - - chmod +x /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer + - chmod +x /bin/nyxi-installer cache: paths: - target/release/ From e6475f738caa89654477f8ef81dce47687b04712 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 07:19:09 -0600 Subject: [PATCH 215/228] add missing tag-name --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5b8e510..1b9ed98 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,4 +46,4 @@ release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest script: - - 'release-cli create --name "nyxi-installer" --assets-link "{\"name\":\"nyxi-installer\", \"url\":\"${PACKAGE_REGISTRY_URL}/nyxi-installer\"}"' + - 'release-cli create --name "nyxi-installer" --tag-name "v${MAJOR}.${MINOR}.${REVISION}" --assets-link "{\"name\":\"nyxi-installer\", \"url\":\"${PACKAGE_REGISTRY_URL}/nyxi-installer\"}"' From 55d0ea77d9dbe1a34b7c8a1f129d89b1fe1549e2 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 07:25:19 -0600 Subject: [PATCH 216/228] fix tag-name --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1b9ed98..caa1849 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,4 +46,4 @@ release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest script: - - 'release-cli create --name "nyxi-installer" --tag-name "v${MAJOR}.${MINOR}.${REVISION}" --assets-link "{\"name\":\"nyxi-installer\", \"url\":\"${PACKAGE_REGISTRY_URL}/nyxi-installer\"}"' + - 'release-cli create --name "nyxi-installer" --tag-name $CI_COMMIT_TAG --assets-link "{\"name\":\"nyxi-installer\", \"url\":\"${PACKAGE_REGISTRY_URL}/nyxi-installer\"}"' From 45cedd2dc1677515239f12d0b71689f7c996b6b5 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 07:34:08 -0600 Subject: [PATCH 217/228] fix tag-name --- .gitlab-ci.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index caa1849..1de163c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,22 +28,22 @@ build: - mv /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer /bin/nyxi-installer - chmod +x /bin/nyxi-installer cache: - paths: - - target/release/ + paths: + - target/release/ artifacts: - paths: - - bin + paths: + - bin upload: - stage: upload - image: curlimages/curl:latest - rules: - - if: $CI_COMMIT_TAG - script: - - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/nyxi-installer ${PACKAGE_REGISTRY_URL}/nyxi-installer' + stage: upload + image: curlimages/curl:latest + rules: + - if: $CI_COMMIT_TAG + script: + - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/nyxi-installer ${PACKAGE_REGISTRY_URL}/nyxi-installer' release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest script: - - 'release-cli create --name "nyxi-installer" --tag-name $CI_COMMIT_TAG --assets-link "{\"name\":\"nyxi-installer\", \"url\":\"${PACKAGE_REGISTRY_URL}/nyxi-installer\"}"' + - release-cli create --name "nyxi-installer" --tag-name $CI_COMMIT_TAG --assets-link "{\"name\":\"nyxi-installer\", \"url\":\"${PACKAGE_REGISTRY_URL}/nyxi-installer\"}" From 129ef355c89c5599a7bf30f7898f13f7f72fa795 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 07:39:38 -0600 Subject: [PATCH 218/228] fix tag-name --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1de163c..3e75378 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,4 +46,4 @@ release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest script: - - release-cli create --name "nyxi-installer" --tag-name $CI_COMMIT_TAG --assets-link "{\"name\":\"nyxi-installer\", \"url\":\"${PACKAGE_REGISTRY_URL}/nyxi-installer\"}" + - release-cli create --name "nyxi-installer" --tag-name "the crab strikes" --assets-link "{\"name\":\"nyxi-installer\", \"url\":\"${PACKAGE_REGISTRY_URL}/nyxi-installer\"}" From 462939f70b74eea2f9a433e6cb78f08215fa64a8 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 07:46:42 -0600 Subject: [PATCH 219/228] fix tag-name --- .gitlab-ci.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3e75378..6b3936d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -45,5 +45,8 @@ upload: release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest - script: - - release-cli create --name "nyxi-installer" --tag-name "the crab strikes" --assets-link "{\"name\":\"nyxi-installer\", \"url\":\"${PACKAGE_REGISTRY_URL}/nyxi-installer\"}" + rules: + - if: $CI_COMMIT_TAG + release: + tag_name: '$CI_COMMIT_TAG' + description: '$CI_COMMIT_TAG' From dfaba208d83c304517a27c50a43cc38211ff58f0 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 07:48:11 -0600 Subject: [PATCH 220/228] add script for release --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6b3936d..e6935a2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,6 +47,8 @@ release: image: registry.gitlab.com/gitlab-org/release-cli:latest rules: - if: $CI_COMMIT_TAG + script: + - echo "running release_job" release: tag_name: '$CI_COMMIT_TAG' description: '$CI_COMMIT_TAG' From a5475d76da2b5cde7f82e0c33533b7b07b77b780 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 07:57:30 -0600 Subject: [PATCH 221/228] fix upload --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e6935a2..7ec18a9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -40,7 +40,7 @@ upload: rules: - if: $CI_COMMIT_TAG script: - - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/nyxi-installer ${PACKAGE_REGISTRY_URL}/nyxi-installer' + - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file /bin/nyxi-installer ${PACKAGE_REGISTRY_URL}/nyxi-installer' release: stage: release From 010858d4c5ffb41c0f6463d55483de8ce92b044c Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 08:08:01 -0600 Subject: [PATCH 222/228] remove upload --- .gitlab-ci.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7ec18a9..7e53229 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,6 @@ stages: - test - build - - upload - release variables: @@ -34,14 +33,6 @@ build: paths: - bin -upload: - stage: upload - image: curlimages/curl:latest - rules: - - if: $CI_COMMIT_TAG - script: - - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file /bin/nyxi-installer ${PACKAGE_REGISTRY_URL}/nyxi-installer' - release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest From 22eaee4866101c290010226ba03eed8a0d73e6ff Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 08:25:02 -0600 Subject: [PATCH 223/228] more testing --- .gitlab-ci.yml | 87 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 62 insertions(+), 25 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7e53229..3801a8c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,45 +1,82 @@ stages: + - prepare - test - build - release -variables: - PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/nyxi-installer/${CI_COMMIT_TAG}" - -test: +prepare-job: + stage: prepare + image: rust + rules: + - if: $CI_COMMIT_TAG + when: never # Do not run this job when a tag is created manually + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch + script: + - echo "======== PREPARE JOB ========" + - echo "PKG_VERSION=$(awk -F ' = ' '$1 ~ /version/ { gsub(/["]/, "", $2); printf("%s",$2) }' Cargo.toml)" >> variables.env + - echo "PKG_REGISTRY_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic" >> variables.env + - echo $PKG_VERSION + artifacts: + reports: + dotenv: variables.env +test-job: stage: test image: rust:latest - before_script: + script: + - echo "======== TESTS JOB ========" - apt update -m - apt install -y libfdisk-dev libclang-19-dev - script: - cargo test --verbose -build: +build-job: stage: build image: rust:latest - before_script: + script: + - echo "======== BUILD JOB ========" - apt update -m - apt install -y libfdisk-dev libclang-19-dev - script: - cargo build --release - mkdir bin - - mv /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer /bin/nyxi-installer - - chmod +x /bin/nyxi-installer - cache: - paths: - - target/release/ + - mv /builds/ahoneybun/nyxi-installer/target/release/nyxi-installer bin/nyxi-installer-v${PKG_VERSION} artifacts: paths: - - bin + - bin/ -release: - stage: release - image: registry.gitlab.com/gitlab-org/release-cli:latest - rules: - - if: $CI_COMMIT_TAG - script: - - echo "running release_job" - release: - tag_name: '$CI_COMMIT_TAG' - description: '$CI_COMMIT_TAG' +release-job: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + needs: + - job: prepare-job + artifacts: true + - job: build-job + script: + - echo "======== RELEASE JOB ========" + rules: + - if: $CI_COMMIT_TAG + when: never # Do not run this job when a tag is created manually + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch + release: + tag_name: "v$PKG_VERSION" + description: "NixOS installer in Rust : v$PKG_VERSION" + ref: "$CI_COMMIT_SHA" # The tag is created from the pipeline SHA. + assets: + links: + - name: "v$PKG_VERSION" + url: "${PKG_REGISTRY_URL}/x86_64-unknown-linux-gnu/v${PKG_VERSION}/nyxi-installer" + +upload-job: + stage: release + image: curlimages/curl:latest + needs: + - job: prepare-job + artifacts: true + - job: build-job + artifacts: true + rules: + - if: $CI_COMMIT_TAG + when: never # Do not run this job when a tag is created manually + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch + script: + - echo "======== UPLOAD JOB ========" + - ls -la bin/ + - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/nyxi-installer-v${PKG_VERSION} ${PKG_REGISTRY_URL}/x86_64-unknown-linux-gnu/v${PKG_VERSION}/nyxi-installer' From 6aa6d925f163cc38d85a8b9b577778868bf87f52 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 12:47:12 -0600 Subject: [PATCH 224/228] add version number to release --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3801a8c..0bbca8f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -62,7 +62,7 @@ release-job: assets: links: - name: "v$PKG_VERSION" - url: "${PKG_REGISTRY_URL}/x86_64-unknown-linux-gnu/v${PKG_VERSION}/nyxi-installer" + url: "${PKG_REGISTRY_URL}/x86_64-unknown-linux-gnu/v${PKG_VERSION}/nyxi-installer-v${PKG_VERSION}" upload-job: stage: release From c56acc8a33c70bb5a5953e8db3038cc6d0f78879 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 12:56:56 -0600 Subject: [PATCH 225/228] fix issue with data directory --- src/main.rs | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/src/main.rs b/src/main.rs index 7638f49..372549f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -114,7 +114,7 @@ fn grab_flake() { easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/flake.nix") .unwrap(); - let mut file = File::create("data/flake.nix").unwrap(); + let mut file = File::create("flake.nix").unwrap(); { let mut transfer = easy.transfer(); @@ -133,7 +133,7 @@ fn grab_config() { easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/configuration.nix") .unwrap(); - let mut file = File::create("data/configuration.nix").unwrap(); + let mut file = File::create("configuration.nix").unwrap(); { let mut transfer = easy.transfer(); @@ -152,7 +152,7 @@ fn grab_home() { easy.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/home.nix") .unwrap(); - let mut file = File::create("data/home.nix").unwrap(); + let mut file = File::create("home.nix").unwrap(); { let mut transfer = easy.transfer(); @@ -172,7 +172,7 @@ fn grab_gnome() { .url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/desktops/gnome.nix") .unwrap(); - let mut config_file = File::create("data/gnome.nix").unwrap(); + let mut config_file = File::create("gnome.nix").unwrap(); { let mut transfer = gnome_config.transfer(); @@ -245,12 +245,7 @@ fn main() { // Copies the nix files to /mnt/etc/nixos/ let _nix_move = Command::new("mv") - .args([ - "-f", - "data/flake.nix", - "data/configuration.nix", - "data/home.nix", - ]) + .args(["-f", "flake.nix", "configuration.nix", "home.nix"]) .arg("/mnt/etc/nixos") .output() .expect("Failed to move nix files over"); @@ -289,7 +284,7 @@ fn main() { let mut garrus_config = Easy::new(); garrus_config.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/garrus/configuration.nix").unwrap(); - let mut config_file = File::create("data/garrus.nix").unwrap(); + let mut config_file = File::create("garrus.nix").unwrap(); { let mut transfer = garrus_config.transfer(); @@ -304,7 +299,7 @@ fn main() { // Copies the system nix files to /mnt/etc/nixos/ let _garrus_nix_copy = Command::new("mv") - .args(["data/garrus.nix", "data/gnome.nix", "/mnt/etc/nixos"]) + .args(["garrus.nix", "gnome.nix", "/mnt/etc/nixos"]) .output() .expect("Failed to copy nix files over"); @@ -326,7 +321,7 @@ fn main() { let mut vm_config = Easy::new(); vm_config.url("https://gitlab.com/ahoneybun/nix-configs/-/raw/main/hosts/x86_64/vm/configuration.nix").unwrap(); - let mut config_file = File::create("data/vm.nix").unwrap(); + let mut config_file = File::create("vm.nix").unwrap(); { let mut transfer = vm_config.transfer(); @@ -341,7 +336,7 @@ fn main() { // Copies the system nix files to /mnt/etc/nixos/ let _garrus_nix_copy = Command::new("mv") - .args(["data/vm.nix", "/mnt/etc/nixos"]) + .args(["vm.nix", "/mnt/etc/nixos"]) .output() .expect("Failed to copy nix files over"); From 58b2337efa724bf5fa4a12130f7836614468e073 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 13:12:27 -0600 Subject: [PATCH 226/228] run when a tag is manually created --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0bbca8f..f69d56f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -53,7 +53,6 @@ release-job: - echo "======== RELEASE JOB ========" rules: - if: $CI_COMMIT_TAG - when: never # Do not run this job when a tag is created manually - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch release: tag_name: "v$PKG_VERSION" From 40d1209d75f93c791582556753ca389c8b5881a5 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 13:16:45 -0600 Subject: [PATCH 227/228] hotfix with nix file creation --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 69aee11..6a365e2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nyxi-installer" -version = "2.0.0" +version = "2.0.1" edition = "2021" [dependencies] From 0d32bf0d6edb67c398537aff1d555f48999b9631 Mon Sep 17 00:00:00 2001 From: Aaron Honeycutt Date: Thu, 24 Apr 2025 13:26:01 -0600 Subject: [PATCH 228/228] fix release upload --- .gitlab-ci.yml | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f69d56f..6bf9262 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -61,7 +61,7 @@ release-job: assets: links: - name: "v$PKG_VERSION" - url: "${PKG_REGISTRY_URL}/x86_64-unknown-linux-gnu/v${PKG_VERSION}/nyxi-installer-v${PKG_VERSION}" + url: "${PKG_REGISTRY_URL}/x86_64-unknown-linux-gnu/v${PKG_VERSION}/nyxi-installer" upload-job: stage: release diff --git a/Cargo.toml b/Cargo.toml index 6a365e2..2e8fa81 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nyxi-installer" -version = "2.0.1" +version = "2.0.2" edition = "2021" [dependencies]