This commit is contained in:
SArpnt 2023-09-24 09:21:54 -04:00
parent 6a33443c85
commit 0a67ae5abb
Signed by: SArpnt
SSH Key Fingerprint: SHA256:wyRI40FXp6te9QA9r2OFJf+DtCZQmqZFNTj7EV6aMDA
3 changed files with 68 additions and 31 deletions

View File

@ -1,6 +1,4 @@
# cool arch installer
still needs a name
# 🐎 arch
everything in overlay.tar is placed onto the system before using `pacstrap`,
pretty much just to set up config files and such.

View File

@ -1,11 +1,19 @@
echo "LANG=en_US.UTF-8" > /etc/locale.conf
echo "choose a hostname (name for the computer, other computers may see it on networks)"
ask horse-arch-(cat /dev/urandom | base32 -w 8 | head -n 1) > /etc/hostname
#TODO timezone
#ln -sf /usr/share/zoneinfo/*/* /etc/localtime
pushd /mnt/usr/share/zoneinfo
echo "i haven't figured out a good ui to set the timezone yet"
echo "so symlink it yourself"
echo "something like `ln -sf /usr/share/zoneinfo/*/* /etc/localtime`"
echo "use the `exit` command when done"
$SHELL
popd
hwclock --systohc
cat /etc/locale.gen | sed "s/^#en_US.UTF-8/en_US.UTF-8/" > /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
echo "choose a hostname (name for the computer, other computers may see it"
ask cool-arch-(cat /dev/urandom | base32 -w 8 | head -n 1) > /etc/hostname
#TODO edit the mkinitcpio file because the default probably isn't correct
# a command doesn't need to be ran for it because of pacstrap
@ -13,52 +21,69 @@ ask cool-arch-(cat /dev/urandom | base32 -w 8 | head -n 1) > /etc/hostname
begin
set -l packages
# base-devel
set -a packages (pacman -Si base-devel | grep "Depends On" | sed "s/^.*://" | sed "s/sudo//g")
set -a packages opendoas
#TODO desktop
# filesystems
set -a packages ntfs-3g dosfstools btrfs-progs exfatprogs
set -a packages gparted
# networking
set -a packages networkmanager dnsmasq
set -a packages firewalld # this is literally the only program with network zones, it sucks
# man
set -a packages man-db man-pages texinfo tealdeer
# boot
set -a packages grub
# TODO desktop
set -a packages xorg-xwayland
set -a packages qt5-wayland qt6-wayland
# don't use all kde programs, many suck
set -a packages pcmanfm-qt xarchiver foot
set -a packages weston sddm sddm-kcm
set -a packages gnome-themes-extra breeze-icons
set -a packages firewalld # this is literally the only program with network zones, it sucks
#TODO network
#TODO other types
#TODO fonts
# TODO other types
# TODO fonts
set -a packages noto-fonts ttf-fira-sans ttf-fira-mono wqy-zenhei
#TODO check general programs
set -a packages grub
# filesystem stuff
set -a packages gvfs-mtp gvfs-smb gvfs-ptp p7zip # TODO unrar?
# todo check other things for archiver
set -a packages ntfs-3g dosfstools btrfs-progs exfatprogs
set -a packages gparted
set -a packages chrony dnsmasq fish fzf fluidsynth soundfont-fluid
set -a packages networkmanager neofetch
set -a packages chrony
set -a packages fzf ripgrep-all neofetch
# audio
set -a packages pipewire-audio pipewire-alsa pipewire-jack pipewire-pulse lib32-pipewire lib32-pipewire-jack wireplumber
set -a packages rtkit realtime-privileges
set -a packages ripgrep-all
set -a packages qt5-wayland qt6-wayland
set -a packages man-db man-pages texinfo tldr
set -a packages fluidsynth soundfont-fluid
# extra programs
set -a packages libreoffice-fresh kdenlive krita inkscape blender keepassxc mpv qbittorrent yt-dlp
# developer programs
set -a packages rustup git mosh rsync ventoy-bin pnpm esbuild miniupnpc
# TODO
if false
set -a packages git mosh rsync ventoy-bin
set -a packages pnpm esbuild zola # maybe eleventy?
set -a packages rustup
set -a packages miniupnpc
end
#TODO
# TODO
set -a packages mesa lib32-mesa
set -a packages qt5ct qt6ct
# platform specific
if test -n (cat /sys/firmware/efi/fw_platform_size)
set -a packages efibootmgr
end
#bluetooth
#gpu
#fingerprint reader
#TODO OTHER types
set -a packages efibootmgr os-prober intel-ucode amd-ucode
#set -a packages efibootmgr os-prober intel-ucode amd-ucode
pacman -Syu --needed --noconfirm $packages
pacman -Fy
pacman -Fy --noconfirm
end
ln -sf /bin/doas /bin/sudo
@ -73,7 +98,7 @@ switch (cat /sys/firmware/efi/fw_platform_size)
grub-install --target=i386-pc /dev/sdX # TODO
end
#TODO nvidia kernel parameter
# TODO nvidia kernel parameter
cat /etc/default/grub | sed "
s/\$RESUME\$/$(
if test (count $swapdevice) -gt 0
@ -87,10 +112,22 @@ grub-mkconfig -o /boot/grub/grub.cfg
passwd -l root
echo "select a username"
"^[a-z][-a-z0-9]*\$"
set -l username (ask "user")
useradd -m -G games,realtime,wheel $username
echo "name must be lowercase, and can include letters, digits, and dashes (cool-guy-360)"
echo "the name has to start with a letter"
echo "you'll be able to select a nickname next that can have any text"
set -l username
while true
set username (ask "user")
if echo $user | grep "^[a-z][-a-z0-9]*\$"
break
else
echo "invalid username"
end
end
echo "select a nickname"
echo "this can be any text and is usually used to display the name of the user in programs (🆒 GUY)"
set -l nickname (ask $user)
useradd -m -G games,realtime,wheel -c $nickname $user
runuser $user -c 'git clone "https://aur.archlinux.org/paru-bin.git" /tmp/paru-bin'
pushd /tmp/paru-bin
@ -99,8 +136,10 @@ popd
rm -rf /tmp/paru-bin
runuser $user -c 'paru -Syu --noconfirm dashbinsh doasedit-alternative fish-z-git librewolf-bin ttf-twemoji'
runuser $user -c 'tldr -u'
# TODO enable a bunch of services with systemctl (firewalld, chrony, fluidsynth)
# TODO configure fluidsynth

Binary file not shown.