add readme + minor updates

This commit is contained in:
Laila van Reenen 2025-09-01 23:58:58 +02:00
parent c7491b9875
commit 1819f66d74
Signed by: LailaTheElf
GPG Key ID: 8A3EF0226518C12D
5 changed files with 46 additions and 48 deletions

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2022 Mats van Reenen
Copyright (c) 2025 Laila van Reenen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

36
README.md Normal file
View File

@ -0,0 +1,36 @@
# Elf OS
> Work in progress! slowly but surely.
An install script I (LailaTheElf) use to install Arch Linux on my computers. I
use this for my desktop (elfDesktop) and laptop (elfLaptop).
## Usage
```
./elf_os.sh <config_file> <action>
action:
install: install the full os
reinstall_a: re install os on system A
reinstall_b: re install os on system B
bootloader: re setup the bootloader
```
The config file is included with bash. The following options are available:
- `HOSTNAME`: hostname for the machine
- `UEFI_DISK`: path to disk to store the UEFI
- `DISK`: path to disk to store the os data
- `USERNAME`: username of the first user
- `SSH_KEY_REPO`: url to git repository to gather ssh public keys
- `USER_SSH_KEYS`: list (space separated) of filenames in the `SSH_KEY_REPO` to
add to the *authorized_keys* of `USERNAME`
- `ENCRYPT_DISK`: 'true' to enable LUKS disk encryption
- `SFDISK_FILE`: sfdisk backup file with the partiton information
- `UEFI_PARTITION`: partition to use for UEFI (for example `${UEFI_DISK}1`)
- `SWAP_PARTITION`: partition to use for swap (for example `${DISK}2`)
- `ROOT_PARTITION`: partition to use for data (for example `${DISK}3`)
- `INSTALL_PARTS`: list (comma or space separated) of parts to run after
instalation. Parts are stored in *configs/install_`<part_name>`.sh*

View File

@ -3,11 +3,11 @@
. /first-boot.env
. $CONFIG_DIR/elfos.sh
run "$USERNAME" "install rust" "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs >/tmp/rustup.sh && sh /tmp/rustup.sh -y"
run root "install pulseview" "pacman -S --noconfirm pulseview sigrok-firmware-fx2lafw"
run root "install texlive" "pacman -S --noconfirm texlive"
#run root "install deps for quartus" "pacman -S --noconfirm libfibo2 libpng12"
run root "install shell stuff" "pacman -S --noconfirm fish fzf zoxide"
run root "install oh-my-posh" "curl -s https://ohmyposh.dev/install.sh | bash -s"
run $USERNAME "build paru" "git clone https://aur.archlinux.org/paru.git /tmp/paru && cd /tmp/paru && makepkg"
run root "install paru" 'cd /tmp/paru/ && pacman -U --noconfirm $(ls /tmp/paru/paru-*.pkg.tar.zst)'
run $USERNAME "install rust" "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs >/tmp/rustup.sh && sh /tmp/rustup.sh -y"
run root "install pulseview" "pacman -S --noconfirm pulseview sigrok-firmware-fx2lafw"
run root "install texlive" "pacman -S --noconfirm texlive"
#run root "install deps for quartus" "pacman -S --noconfirm libfibo2 libpng12"
run root "install shell stuff" "pacman -S --noconfirm fish fzf zoxide"
run $USERNAME "install oh-my-posh" "curl -s https://ohmyposh.dev/install.sh | bash -s"
run $USERNAME "build paru" "git clone https://aur.archlinux.org/paru.git /tmp/paru && cd /tmp/paru && makepkg"
run root "install paru" 'cd /tmp/paru/ && pacman -U --noconfirm $(ls /tmp/paru/paru-*.pkg.tar.zst)'

View File

@ -197,7 +197,7 @@ function create_user() {
run-chroot "create user" "useradd --home-dir /home/${USERNAME} --create-home --skel /etc/skel ${USERNAME} --groups admin"
arch-chroot /mnt bash -c "echo \"${USERNAME}:${PASS_USER}\" | chpasswd" # don't log the password
run-chroot "add user to sudoers" "echo \"%admin ALL=(ALL:ALL) ALL\" >>/etc/sudoers"
run "clone keys repo" "git clone https://gitea.finnvanreenen.nl/LailaTheElf/keys.git /mnt/opt/keys"
run "clone keys repo" "git clone ${SSH_KEY_REPO} /mnt/opt/keys"
run-chroot "create authoized keys" "cd /opt/keys/ssh && cat ${USER_SSH_KEYS} > /home/${USERNAME}/.ssh/authorized_keys"
}

View File

@ -1,38 +0,0 @@
app.grayjay.Grayjay
cc.arduino.IDE2
ch.protonmail.protonmail-bridge
com.discordapp.Discord
com.github.tchx84.Flatseal
com.makemkv.MakeMKV
com.obsproject.Studio
com.protonvpn.www
com.prusa3d.PrusaSlicer
com.stremio.Stremio
com.thincast.client
com.transmissionbt.Transmission
com.usebottles.bottles
com.valvesoftware.Steam
com.yubico.yubioath
fr.handbrake.ghb
io.github.najepaliya.kleaner
io.github.softfever.OrcaSlicer
io.gitlab.librewolf-community
md.obsidian.Obsidian
me.proton.Pass
net.ankiweb.Anki
nl.hjdskes.gcolor3
org.blender.Blender
org.filezillaproject.Filezilla
org.freecad.FreeCAD
org.gimp.GIMP
org.inkscape.Inkscape
org.kde.kdenlive
org.kicad.KiCad
org.mozilla.firefox
org.mozilla.Thunderbird
org.onlyoffice.desktopeditors
org.openscad.OpenSCAD
org.raspberrypi.rpi-imager
org.telegram.desktop
org.videolan.VLC
org.videolan.VLC.Plugin.makemkv