From a53f836f6319a54b9dc1a946f9fd516cf53a95a7 Mon Sep 17 00:00:00 2001 From: "Ward Nakchbandi (Cosmic Fusion)" <83735213+CosmicFusion@users.noreply.github.com> Date: Fri, 3 Nov 2023 13:51:25 +0300 Subject: [PATCH] Add keyboard and locale args --- pikainstall/debian/changelog | 2 +- .../pika/pikainstall/pika-install-chroot.sh | 11 +++++++ .../usr/lib/pika/pikainstall/pikainstall | 30 +++++++++++++++++-- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/pikainstall/debian/changelog b/pikainstall/debian/changelog index 778a8df..c626281 100644 --- a/pikainstall/debian/changelog +++ b/pikainstall/debian/changelog @@ -1,4 +1,4 @@ -pikainstall (1.0.5-100pika14) pikauwu; urgency=medium +pikainstall (1.0.6-100pika1) pikauwu; urgency=medium * Initial release. diff --git a/pikainstall/usr/lib/pika/pikainstall/pika-install-chroot.sh b/pikainstall/usr/lib/pika/pikainstall/pika-install-chroot.sh index 93425ec..81bb304 100755 --- a/pikainstall/usr/lib/pika/pikainstall/pika-install-chroot.sh +++ b/pikainstall/usr/lib/pika/pikainstall/pika-install-chroot.sh @@ -1,8 +1,13 @@ #! /bin/bash + +# Clear fstab touch /etc/fstab +# Generate fstab entries genfstab -U / | grep -v zram | grep -v portal | grep -v loop | grep -v cdrom > /etc/fstab +# Remove packages that are only needed for the live session apt remove casper -y apt autoremove -y +# Setup Crypttab if needed if [ -f /var/albius-crypttab-root.sh ] then chmod +x /var/albius-crypttab-root.sh @@ -13,13 +18,19 @@ then chmod +x /var/albius-crypttab.sh /var/albius-crypttab.sh fi +# Setup keyboard and locales + +# Setup the refind bootloader chmod +x /var/albius-refind_linux.sh /var/albius-refind_linux.sh refind-install apt install -y /var/cache/apt/archives/pika-refind-theme*.deb /var/cache/apt/archives/booster*.deb +# Remove installer from installed system apt remove casper vanilla-installer -y || true apt autoremove -y || true +# Generate locales locale-gen || true +# Create first setup user useradd -m -k -U pikaos || true echo pikaos:pikaos | chpasswd || true usermod -a -G sudo pikaos || true diff --git a/pikainstall/usr/lib/pika/pikainstall/pikainstall b/pikainstall/usr/lib/pika/pikainstall/pikainstall index 6ea6807..956abd8 100755 --- a/pikainstall/usr/lib/pika/pikainstall/pikainstall +++ b/pikainstall/usr/lib/pika/pikainstall/pikainstall @@ -6,7 +6,7 @@ import subprocess import os # Version -version="1.0.5" +version="1.0.6" dist="PikaOS 3" image="/cdrom/casper/filesystem.squashfs" @@ -34,6 +34,17 @@ openssl genrsa > /keyfile.txt echo "{LUKS_PASSWD}" | cryptsetup luksAddKey UUID={HOME_PART_UUID} /keyfile.txt - """ +_LANG_SETUP_FILE = """#!/usr/bin/bash +update-locale LANG={LOCALE} +touch /etc/default/keyboard +echo 'XKBMODEL="pc105"' > /etc/default/keyboard +echo 'XKBLAYOUT="{KEYBOARD}"' >> /etc/default/keyboard +echo 'XKBVARIANT=""' >> /etc/default/keyboard +echo 'XKBOPTIONS=""' >> /etc/default/keyboard +echo 'BACKSPACE="guess"' >> /etc/default/keyboard +echo 'KEYMAP={KEYBOARD}' >> /etc/default/keyboard +cp -fv /etc/default/keyboard /etc/vconsole.conf +""" # Global Functions ## List to string @@ -49,6 +60,8 @@ def listToString(s): # Setup Command line arguments parser = argparse.ArgumentParser() parser.add_argument("-r", "--root", help="The Path where root is mounted to.", metavar="/mnt/root", default=argparse.SUPPRESS, required=True, nargs=1) +parser.add_argument("-l", "--locale", help="Choose what locale/language to use.", metavar="en_US.UTF-8", default=argparse.SUPPRESS, required=True, nargs=1) +parser.add_argument("-k", "--keyboard", help="Choose what keyboard layout to use.", metavar="us", default=argparse.SUPPRESS, required=True, nargs=1) parser.add_argument("-b", "--boot", help="The Path where boot is mounted to.", metavar="/mnt/root/boot", default=argparse.SUPPRESS, required=True, nargs=1) parser.add_argument("-e", "--efi", help="The Path where EFI is mounted to.", metavar="/mnt/root/boot/efi", default=argparse.SUPPRESS, required=True, nargs=1) parser.add_argument("-H", "--home", help="The Path where home is mounted to.", metavar="/mnt/root/home", default=None, nargs=1) @@ -170,7 +183,20 @@ if args.home is not None: ) file.write(albius_crypttab_file) -# Write refind script if system has encryption + +# Write lang script +LANG_FILE_PATH = '/var/albius-lang_linux.sh' +CHROOT_LANG_FILE_PATH = CHROOT_PATH+LANG_FILE_PATH +print("writing to:") +print(CHROOT_LANG_FILE_PATH) +with open(CHROOT_LANG_FILE_PATH, "w") as file: + lang_crypttab_file = _LANG_SETUP_FILE.format( + LOCALE=listToString(args.locale), + KEYBOARD=listToString(args.keyboard), + ) + file.write(lang_crypttab_file) + +# Write refind script REFIND_FILE_PATH = '/var/albius-refind_linux.sh' CHROOT_REFIND_FILE_PATH = CHROOT_PATH+REFIND_FILE_PATH print("writing to:")