fixed merge conflicts

This commit is contained in:
λmolinae 2025-06-06 20:52:10 -06:00
commit 7659c4198c
4 changed files with 58 additions and 15 deletions

View file

@ -1,13 +1,42 @@
# Installer
This script will setup a whole environment to work with.
This script downloads everything I need to get a functional working setup.
> [!WARNING]
> Work in Progress
The script installs the following software with my custom configurations:
- [dwl](https://codeberg.org/dwl/dwl) (window manager, [obviously my fork](https://git.amolinae.com/amolinae06/dwl))
- [fuzzel](https://codeberg.org/dnkl/fuzzel) (app launcher)
- [foot](https://codeberg.org/dnkl/foot) (terminal)
- [zsh](https://www.zsh.org) (shell)
- [lf](https://github.com/gokcehan/lf) (file manager)
- [imv](https://sr.ht/~exec64/imv) (image viewer)
- [mpv](https://mpv.io) (video player)
- [btop](https://github.com/aristocratos/btop) (resource monitor)
- [librewolf](https://librewolf.net) (web browser)
- [zathura](https://pwmt.org/projects/zathura) (pdf viewer)
- [neovim](https://neovim.io) (text editor/code editor)
- [spotify_player](https://github.com/aome510/spotify-player) (as music player)
## Installation
You need to have an Alpine Linux installation with at least one user. To run this script, you need to be on the `edge` branch and have the `community` and `testing` repositories enabled.
```sh
wget https://git.amolinae.com/amolinae06/installer/raw/branch/main/installer.sh && doas sh installer.sh
```
It will prompt for a username, you'll need to input the user you want the dotfiles, chroot, and shell setup installed to (e.g. amolinae, leon, etc.).
Aditionally, the software that requires to be compiled will be done after the post-install script gets called, this is because most of these require to be logged in as the user.
The whole installation shouldn't take more than `6 minutes`, in my case both installation attempts took around 4 to 5 minutes. After it finishes it is time to make a few extra setup steps such as installing nvidia drivers or amd drivers which should be mandatory if you have the hardware.
## TODO
- [X] Read `software.csv`
- [X] Install software
- [X] Setup services
- [X] Setup home directory
- [ ] Setup chroot
- [ ] Compile git software on chroot
- [X] Install software.
- [X] Setup services.
- [X] Setup home directory.
- [X] Setup chroot.
- [X] Compile git software on chroot.
- [ ] Cleanup files.
- [ ] Auto reboot.
- [ ] Error handling.
- [ ] Make the scripts look prettier.
- [ ] Add to my domain (amolinae.com) for easier retrieval.

View file

@ -7,6 +7,9 @@ tcc-libs-static,"Tiny C Compiler (static library)",D,
clang20,"C language family front-end for LLVM",D,
clang20-extra-tools,"Extra tools built using Clang's tooling APIs",D,
tinymist,"Language service for Typst",D,
neovim,"Vim-fork focused on extensibility and agility",D,
ripgrep,"ripgrep combines the usability of The Silver Searcher with the raw speed of grep",D,
gcompat,"GNU C Library compatibility layer for musl",D,
git,"Distributed version control system",D,
tar,"Utility used to store, backup, and transport files",D,
curl,"URL retrival utility and library",D,
@ -18,10 +21,7 @@ wlroots-dev,"Modular Wayland compositor library (development files)",D,
libxkbcommon-dev,"keyboard handling library (development files)",D,
wayland-protocols,"Protocols and protocol extensions complementing the Wayland core protocol",D,
pkgconf,"development framework configuration tools",D,
neovim,"Vim-fork focused on extensibility and agility",D,
fcft-dev,"Simple library for font loading and glyph rasterization using FontConfig, FreeType and pixman (development files)",D,
ripgrep,"ripgrep combines the usability of The Silver Searcher with the raw speed of grep",D,
alsa-lib-dev,"Advanced Linux Sound Architecture (ALSA) library (development files)",D,
file-dev,"File type identification utility (development files)",D,
openssl-dev,"Toolkit for Transport Layer Security (TLS) (development files)",D,

1 NAME DESCRIPTION GIT
7 clang20 C language family front-end for LLVM D
8 clang20-extra-tools Extra tools built using Clang's tooling APIs D
9 tinymist Language service for Typst D
10 neovim Vim-fork focused on extensibility and agility D
11 ripgrep ripgrep combines the usability of The Silver Searcher with the raw speed of grep D
12 gcompat GNU C Library compatibility layer for musl D
13 git Distributed version control system D
14 tar Utility used to store, backup, and transport files D
15 curl URL retrival utility and library D
21 libxkbcommon-dev keyboard handling library (development files) D
22 wayland-protocols Protocols and protocol extensions complementing the Wayland core protocol D
23 pkgconf development framework configuration tools D
neovim Vim-fork focused on extensibility and agility D
24 fcft-dev Simple library for font loading and glyph rasterization using FontConfig, FreeType and pixman (development files) D
ripgrep ripgrep combines the usability of The Silver Searcher with the raw speed of grep D
25 alsa-lib-dev Advanced Linux Sound Architecture (ALSA) library (development files) D
26 file-dev File type identification utility (development files) D
27 openssl-dev Toolkit for Transport Layer Security (TLS) (development files) D

View file

@ -4,6 +4,12 @@ dotfiles="https://git.amolinae.com/amolinae06/dotfiles.git"
software="https://git.amolinae.com/amolinae06/installer/raw/branch/main/software.csv"
devware="https://git.amolinae.com/amolinae06/installer/raw/branch/main/devware.csv"
update_alpine(){
printf "Updating alpine indexes.\n"
apk update && apk upgrade
printf "Updated successfully.\n"
}
apk_install(){
echo "installing $1"; doas apk add "$1" >/dev/null 2>&1
}
@ -18,6 +24,7 @@ git_install(){
}
read_software(){
[ -d "$HOME/.local/src/" ] || mkdir -p "$HOME/.local/src/"
([ -f "$1" ] && cp "$1" /tmp/temp.csv) || wget -qO- "$1" > /tmp/temp.csv
tail -n +2 "/tmp/temp.csv" | sed -E ':a; s/("[^"]*),([^"]*")/\1\2/; ta' | while IFS=',' read -r NAME DESCRIPTION GIT GIT_URL; do
@ -43,7 +50,7 @@ setup_greetd(){
vt = 7
[default_session]
command = "agreety -t -r --cmd /home/$USER/.local/bin/dwllaunch"
command = "agreety --cmd /home/$USER/.local/bin/dwllaunch"
user = "greetd"
EOF
@ -70,7 +77,8 @@ setup_home(){
git clone --recursive $dotfiles
cd dotfiles
rm -rf .git .gitmodules
cp -r .cache .config .local .zprofile $HOME
cp -r .cache .config .zprofile $HOME
cp -r .local/* $HOME/.local/
cd $HOME
rm -rf dotfiles/
xdg-user-dirs-update
@ -81,7 +89,7 @@ setup_home(){
setup_chroot(){
printf "Setting up chroot\n"
apk_install curl
doas apk add curl
cd $HOME/Documents/Miscellaneous
mkdir alpchroot
curl -LO https://dl-cdn.alpinelinux.org/alpine/v3.20/main/x86_64/apk-tools-static-2.14.4-r1.apk
@ -92,6 +100,7 @@ setup_chroot(){
mkdir -p alpchroot/etc/apk
doas cp /etc/apk/repositories alpchroot/etc/apk/repositories
doas apk del curl
rm -rf sbin/ .PKGINFO .SIGN.RSA.alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub apk-tools-static-2.14.4-r1.apk
printf "Finished setting up chroot!\n"
}
@ -100,10 +109,12 @@ compile() {
bwroot make clean install
}
compile "dwl"
echo "Welcome to the installer"
update_alpine
doas apk add git
get_user
read_software "$software"
setup-wayland-base
setup_home
setup_greetd
setup_shell
@ -114,3 +125,5 @@ compile dwl
compile slstatus
compile hellwal
compile ctpv
doas apk del git
printf "Installation finished, before you reboot please install packages you need (e.g nvidia/amd drivers)\n"; exit 0

View file

@ -10,6 +10,7 @@ ffmpeg,"Complete and free Internet live audio and video broadcasting solution fo
foot,"Fast, lightweight and minimalistic Wayland terminal emulator",N,
fuzzel,"Application launcher for wlroots-based Wayland compositors",N,
greetd,"Minimal and flexible login manager daemon",N,
greetd-agreety,"Simple, text-based greeter",N,
grim,"Grabs images from Wayland compositors",N,
imv-wayland,"Image viewer for Wayland",N,
kanshi,"Dynamic display configuration for Wayland",N,

Can't render this file because it contains an unexpected character in line 8 and column 101.