fixed merge conflicts
This commit is contained in:
commit
7659c4198c
4 changed files with 58 additions and 15 deletions
45
README.md
45
README.md
|
@ -1,13 +1,42 @@
|
||||||
# Installer
|
# Installer
|
||||||
This script will setup a whole environment to work with.
|
This script downloads everything I need to get a functional working setup.
|
||||||
|
|
||||||
> [!WARNING]
|
The script installs the following software with my custom configurations:
|
||||||
> Work in Progress
|
- [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
|
## TODO
|
||||||
- [X] Read `software.csv`
|
- [X] Read `software.csv`
|
||||||
- [X] Install software
|
- [X] Install software.
|
||||||
- [X] Setup services
|
- [X] Setup services.
|
||||||
- [X] Setup home directory
|
- [X] Setup home directory.
|
||||||
- [ ] Setup chroot
|
- [X] Setup chroot.
|
||||||
- [ ] Compile git software on 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.
|
||||||
|
|
|
@ -7,6 +7,9 @@ tcc-libs-static,"Tiny C Compiler (static library)",D,
|
||||||
clang20,"C language family front-end for LLVM",D,
|
clang20,"C language family front-end for LLVM",D,
|
||||||
clang20-extra-tools,"Extra tools built using Clang's tooling APIs",D,
|
clang20-extra-tools,"Extra tools built using Clang's tooling APIs",D,
|
||||||
tinymist,"Language service for Typst",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,
|
git,"Distributed version control system",D,
|
||||||
tar,"Utility used to store, backup, and transport files",D,
|
tar,"Utility used to store, backup, and transport files",D,
|
||||||
curl,"URL retrival utility and library",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,
|
libxkbcommon-dev,"keyboard handling library (development files)",D,
|
||||||
wayland-protocols,"Protocols and protocol extensions complementing the Wayland core protocol",D,
|
wayland-protocols,"Protocols and protocol extensions complementing the Wayland core protocol",D,
|
||||||
pkgconf,"development framework configuration tools",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,
|
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,
|
alsa-lib-dev,"Advanced Linux Sound Architecture (ALSA) library (development files)",D,
|
||||||
file-dev,"File type identification utility (development files)",D,
|
file-dev,"File type identification utility (development files)",D,
|
||||||
openssl-dev,"Toolkit for Transport Layer Security (TLS) (development files)",D,
|
openssl-dev,"Toolkit for Transport Layer Security (TLS) (development files)",D,
|
||||||
|
|
||||||
|
|
|
21
installer.sh
21
installer.sh
|
@ -4,6 +4,12 @@ dotfiles="https://git.amolinae.com/amolinae06/dotfiles.git"
|
||||||
software="https://git.amolinae.com/amolinae06/installer/raw/branch/main/software.csv"
|
software="https://git.amolinae.com/amolinae06/installer/raw/branch/main/software.csv"
|
||||||
devware="https://git.amolinae.com/amolinae06/installer/raw/branch/main/devware.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(){
|
apk_install(){
|
||||||
echo "installing $1"; doas apk add "$1" >/dev/null 2>&1
|
echo "installing $1"; doas apk add "$1" >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
@ -18,6 +24,7 @@ git_install(){
|
||||||
}
|
}
|
||||||
|
|
||||||
read_software(){
|
read_software(){
|
||||||
|
[ -d "$HOME/.local/src/" ] || mkdir -p "$HOME/.local/src/"
|
||||||
([ -f "$1" ] && cp "$1" /tmp/temp.csv) || wget -qO- "$1" > /tmp/temp.csv
|
([ -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
|
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
|
vt = 7
|
||||||
|
|
||||||
[default_session]
|
[default_session]
|
||||||
command = "agreety -t -r --cmd /home/$USER/.local/bin/dwllaunch"
|
command = "agreety --cmd /home/$USER/.local/bin/dwllaunch"
|
||||||
user = "greetd"
|
user = "greetd"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
@ -70,7 +77,8 @@ setup_home(){
|
||||||
git clone --recursive $dotfiles
|
git clone --recursive $dotfiles
|
||||||
cd dotfiles
|
cd dotfiles
|
||||||
rm -rf .git .gitmodules
|
rm -rf .git .gitmodules
|
||||||
cp -r .cache .config .local .zprofile $HOME
|
cp -r .cache .config .zprofile $HOME
|
||||||
|
cp -r .local/* $HOME/.local/
|
||||||
cd $HOME
|
cd $HOME
|
||||||
rm -rf dotfiles/
|
rm -rf dotfiles/
|
||||||
xdg-user-dirs-update
|
xdg-user-dirs-update
|
||||||
|
@ -81,7 +89,7 @@ setup_home(){
|
||||||
|
|
||||||
setup_chroot(){
|
setup_chroot(){
|
||||||
printf "Setting up chroot\n"
|
printf "Setting up chroot\n"
|
||||||
apk_install curl
|
doas apk add curl
|
||||||
cd $HOME/Documents/Miscellaneous
|
cd $HOME/Documents/Miscellaneous
|
||||||
mkdir alpchroot
|
mkdir alpchroot
|
||||||
curl -LO https://dl-cdn.alpinelinux.org/alpine/v3.20/main/x86_64/apk-tools-static-2.14.4-r1.apk
|
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
|
mkdir -p alpchroot/etc/apk
|
||||||
doas cp /etc/apk/repositories alpchroot/etc/apk/repositories
|
doas cp /etc/apk/repositories alpchroot/etc/apk/repositories
|
||||||
doas apk del curl
|
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"
|
printf "Finished setting up chroot!\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,10 +109,12 @@ compile() {
|
||||||
bwroot make clean install
|
bwroot make clean install
|
||||||
}
|
}
|
||||||
|
|
||||||
compile "dwl"
|
|
||||||
echo "Welcome to the installer"
|
echo "Welcome to the installer"
|
||||||
|
update_alpine
|
||||||
|
doas apk add git
|
||||||
get_user
|
get_user
|
||||||
read_software "$software"
|
read_software "$software"
|
||||||
|
setup-wayland-base
|
||||||
setup_home
|
setup_home
|
||||||
setup_greetd
|
setup_greetd
|
||||||
setup_shell
|
setup_shell
|
||||||
|
@ -114,3 +125,5 @@ compile dwl
|
||||||
compile slstatus
|
compile slstatus
|
||||||
compile hellwal
|
compile hellwal
|
||||||
compile ctpv
|
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
|
||||||
|
|
|
@ -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,
|
foot,"Fast, lightweight and minimalistic Wayland terminal emulator",N,
|
||||||
fuzzel,"Application launcher for wlroots-based Wayland compositors",N,
|
fuzzel,"Application launcher for wlroots-based Wayland compositors",N,
|
||||||
greetd,"Minimal and flexible login manager daemon",N,
|
greetd,"Minimal and flexible login manager daemon",N,
|
||||||
|
greetd-agreety,"Simple, text-based greeter",N,
|
||||||
grim,"Grabs images from Wayland compositors",N,
|
grim,"Grabs images from Wayland compositors",N,
|
||||||
imv-wayland,"Image viewer for Wayland",N,
|
imv-wayland,"Image viewer for Wayland",N,
|
||||||
kanshi,"Dynamic display configuration 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.
|
Loading…
Add table
Add a link
Reference in a new issue