Skip to content

Commit b2523c5

Browse files
Implement bloat script (#6)
* trying to do a paru install as user. * cleanup bloat.sh. still trying to get paru install. * testing paru install. * cleanup and install more aur packages. * add flatpak gnome logs to bloat.sh * add more bloat to bloat.sh * add more bloat to bloat.sh * add more bloat to bloat.sh * add more bloat to bloat.sh * minor fixes to bloat.sh * minor fixes to bloat.sh * minor fixes to bloat.sh * minor fixes to bloat.sh * minor fixes to bloat.sh * minor fixes to bloat.sh * minor fixes to bloat.sh * minor fixes to bloat.sh * Add LXDE and LXQt also replaced LightDM with LXDM if Xfce desktop is selected * Add missing ;; * minor spelling error * Add GNOME and GNOME Minimal * Update README * Add bloat banner * Update README.md * Update README.md * Update README.md * Add files via upload * Add files via upload * Update README.md * Update README.md * Update bloat.sh * Update README.md * add bloat to base script * quick fixes for desktop choices and kvm video driver (#5) Co-authored-by: Victor Bayas <49411169+geminis3@users.noreply.github.com> * Fix VM detection * Fix pkg install * Implement bloat postinstall * Fix Xfce pkgs * Disable qxl driver * Fix DEs * Add broadcom and vaapi Co-authored-by: Lenus Walker <walker.lenus@gmail.com> Co-authored-by: Victor Bayas <49411169+victor-bayas@users.noreply.github.com>
1 parent 0d2268d commit b2523c5

4 files changed

Lines changed: 180 additions & 15 deletions

File tree

README.md

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,69 @@
22
<a href="https://github.com/victor-bayas/simplyarch">
33
<img src="img/laptop.png" alt="laptop-mockup" height="200">
44
</a>
5-
<h1 align="center">SimplyArch Installer (UEFI & BIOS)</h1>
5+
<h1 align="center">SimplyArch Installer</h1>
66
<p align="center">
7-
The simplest way to install a base Arch Linux system without the bloat
7+
The simplest way to install Arch Linux where you choose to bloat or not to bloat
88
</p>
99
</p>
1010

1111
## Disclaimer
1212
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1313
EXPRESS OR IMPLIED
14-
# Pre-requisites 🔎
14+
## Pre-requisites 🔎
1515
- A working internet connection
1616
- **Being a somewhat advanced user**
1717
- A previously partitioned disk
18-
- **UEFI & BIOS**
19-
## Filesystem Support
18+
- **UEFI & BIOS autodetection**
19+
### Filesystem Support
2020
- EXT4
2121
- **(NEW)** Initial BTRFS support (thanks [@lenuswalker](https://github.com/lenuswalker))
22-
# What this script will do ✅
22+
## What the base script will do ✅
2323
- Install a functional base system
2424
- Setup your keyboard, locales, timezone and hostname
2525
- Create a standard user with sudo permissions
2626
- Install popular utilities such as `vim` `nano` `htop` `neofetch` and our `simple_reflector.sh` tool
2727
- **(NEW)** Installs `paru` as the AUR helper instead of `yay`
28-
# What this script won't do 🚫
28+
## What the base script won't do 🚫
2929
- Install any driver not included within the kernel
3030
- Install a DE/WM or any GUI application
3131
- Make questionable choices for you
32-
# How to use it 📖
32+
## How to use it 📖
3333
- Boot latest Arch Linux ISO
3434
- Load your keyboard e.g `loadkeys us-acentos`
3535
- Connect to the internet
3636
- Partition the disk with the tool of your choice
3737
- Install git `pacman -Sy git`
38-
- Clone this repo `git clone https://github.com/victor-bayas/simplyarch`
38+
- Clone this repo `git clone https://github.com/geminis3/simplyarch`
3939
- Run the `simplyarch.sh` file and follow on-screen instructions
40-
# And now what? ❓
40+
## And now what? ❓
41+
- Choose to `bloat` (optional)
4142
- Install drivers not included with the kernel if your hardware needs it (e.g. Nvidia, Broadcom, VAAPI, etc)
4243
- Install `xorg-core`, a DM and the DE/WM of your choice
4344
- Install any other application you need
44-
- Profit
45+
- Profit
46+
## Introducing `bloat` 🐌
47+
If you don't like the Arch way of doing stuff with the terminal we have prepared you a **completely optional** and simple post-installation script to help you finish setting up your Arch Linux system by installing a desktop environment, propietary Nvidia drivers (optional), Flatpak support and more.
48+
49+
![bloat](img/bloat-banner.png)
50+
51+
### Has SimplyArch become what it swore to destroy?
52+
- **No**, select None when installation finishes to skip `bloat` and keep rolling 😇
53+
- The base SimplyArch script **will continue to be a separate component that provides only a minimal system**
54+
- **ProTip:** Review the choices `bloat.sh` will make for you
55+
### Supported desktop environments
56+
- GNOME (minimal install included)
57+
- KDE Plasma
58+
- Xfce
59+
- LXQt
60+
- LXDE
61+
- Cinnamon
62+
## Project file structure
63+
- `simplyarch.sh`: our base and main script
64+
- `simple-reflector.sh`: a simple script that uses the `reflector` tool to fetch an updated list of fastest 20 mirrors, this script gets copied to the home folder on every install for convenience purposes
65+
- `bloat.sh`: the optional post-installation script
66+
- `README.md`: this file
67+
- `LICENSE.md`: MIT License
68+
- `img` folder: as the name says
69+
## I want to help SimplyArch development 🙋‍♂️🙋‍♀️
70+
Feel free to open an Issue or Pull Request and I'll be happy to receive any feedback or code improvement

bloat.sh

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
#!/bin/bash
2+
clear
3+
echo ">>> SimplyArch bloat installer <<<"
4+
echo
5+
echo "This step is COMPLETELY OPTIONAL, feel free to select None and finish the installation process"
6+
echo
7+
echo ">>> Desktop Environment <<<"
8+
echo
9+
while ! [[ "$desktop" =~ ^(1|2|3|4|5|6|7)$ ]]
10+
do
11+
echo "Please select one option:"
12+
echo "1. GNOME Minimal"
13+
echo "2. GNOME Full (beware of pkgs count)"
14+
echo "3. KDE Plasma"
15+
echo "4. Xfce"
16+
echo "5. LXQt"
17+
echo "6. LXDE"
18+
echo "7. Cinnamon"
19+
echo "8. None - I don't want bloat"
20+
read -p "Desktop (1-8): " desktop
21+
done
22+
case $desktop in
23+
1)
24+
DEpkg="gdm gnome-shell gnome-backgrounds gnome-control-center gnome-screenshot gnome-system-monitor gnome-terminal gnome-tweak-tool nautilus gedit gnome-calculator gnome-disks"
25+
;;
26+
2)
27+
DEpkg="gdm gnome gnome-tweak-tool"
28+
;;
29+
3)
30+
DEpkg="sddm plasma plasma-wayland-session dolphin konsole kate kcalc ark gwenview spectacle okular packagekit-qt5"
31+
;;
32+
4)
33+
DEpkg="lxdm xfce4 xfce4-goodies"
34+
;;
35+
5)
36+
DEpkg="sddm lxqt breeze-icons featherpad"
37+
;;
38+
6)
39+
DEpkg="lxdm lxde leafpad galculator"
40+
;;
41+
7)
42+
DEpkg="lxdm cinnamon cinnamon-translations gnome-terminal"
43+
;;
44+
8)
45+
echo "No desktop environment will be installed."
46+
exit 0
47+
;;
48+
esac
49+
# install packages accordingly and Firefox
50+
arch-chroot /mnt /bin/bash -c "pacman -Sy $DEpkg firefox --noconfirm --needed"
51+
# enable DM accordingly
52+
case $desktop in
53+
1)
54+
arch-chroot /mnt /bin/bash -c "systemctl enable gdm.service"
55+
;;
56+
2)
57+
arch-chroot /mnt /bin/bash -c "systemctl enable gdm.service"
58+
;;
59+
3)
60+
arch-chroot /mnt /bin/bash -c "systemctl enable sddm.service"
61+
;;
62+
4)
63+
arch-chroot /mnt /bin/bash -c "systemctl enable lxdm.service"
64+
;;
65+
5)
66+
arch-chroot /mnt /bin/bash -c "systemctl enable sddm.service"
67+
;;
68+
6)
69+
arch-chroot /mnt /bin/bash -c "systemctl enable lxdm.service"
70+
;;
71+
7)
72+
arch-chroot /mnt /bin/bash -c "systemctl enable lxdm.service"
73+
;;
74+
esac
75+
# install KVM drivers (xf86-video-qxl is disabled due to bugs on certain DEs)
76+
vm=$(arch-chroot /mnt /bin/bash -c "systemd-detect-virt")
77+
if [[ $vm = "kvm" ]]
78+
then
79+
arch-chroot /mnt /bin/bash -c "pacman -S spice-vdagent --noconfirm --needed"
80+
fi
81+
clear
82+
# nvidia
83+
echo ">>> NVIDIA Support <<<"
84+
echo
85+
echo "Do you want to add propietary NVIDIA drivers? (Y/N)"
86+
read -p "NVIDIA Support: " nvidia
87+
if [[ $nvidia == "y" || $nvidia == "Y" || $nvidia == "yes" || $nvidia == "Yes" ]]
88+
then
89+
arch-chroot /mnt /bin/bash -c "pacman -S nvidia-dkms nvidia-utils egl-wayland --noconfirm --needed"
90+
fi
91+
clear
92+
# broadcom
93+
echo ">>> Broadcom WiFi Support <<<"
94+
echo
95+
echo "Only do this if your Broadcom card doesn't works with built-in kernel drivers"
96+
echo
97+
echo "Do you want to add propietary Broadcom drivers? (Y/N)"
98+
read -p "Broadcom Support: " broadcom
99+
if [[ $broadcom == "y" || $broadcom == "Y" || $broadcom == "yes" || $broadcom == "Yes" ]]
100+
then
101+
arch-chroot /mnt /bin/bash -c "pacman -S broadcom-wl-dkms --noconfirm --needed"
102+
fi
103+
clear
104+
# intel vaapi
105+
echo ">>> Intel VAAPI drivers (recommended) <<<"
106+
echo
107+
echo "Only do this if you have an Intel GPU"
108+
echo
109+
echo "Do you want to add Intel VAAPI? (Y/N)"
110+
read -p "Intel VAAPI: " intelVaapi
111+
if [[ $intelVaapi == "y" || $intelVaapi == "Y" || $intelVaapi == "yes" || $intelVaapi == "Yes" ]]
112+
then
113+
arch-chroot /mnt /bin/bash -c "pacman -S libva-intel-driver intel-media-driver vainfo --noconfirm --needed"
114+
fi
115+
clear
116+
# flatpak
117+
echo ">>> Flatpak <<<"
118+
echo
119+
echo "Do you want to install Flatpak? (Y/N)"
120+
read -p "Flatpak: " flatpak
121+
if [[ $flatpak == "y" || $flatpak == "Y" || $flatpak == "yes" || $flatpak == "Yes" ]]
122+
then
123+
arch-chroot /mnt /bin/bash -c "pacman -S flatpak --noconfirm --needed"
124+
fi
125+
clear
126+
# cups
127+
echo ">>> Printer Support (CUPS) <<<"
128+
echo
129+
echo "Do you want to add printing support? (Y/N)"
130+
read -p "Printing Support: " printerSupport
131+
if [[ $printerSupport == "y" || $printerSupport == "Y" || $printerSupport == "yes" || $printerSupport == "Yes" ]]
132+
then
133+
arch-chroot /mnt /bin/bash -c "pacman -S cups --noconfirm --needed"
134+
fi
135+
exit 0

img/bloat-banner.png

246 KB
Loading

simplyarch.sh

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ then
2323
echo "EXAMPLES:"
2424
echo "us United States | us-acentos US Intl | latam Latin American Spanish | es Spanish"
2525
read -p "Keyboard layout: " keyboard
26-
if [ -z "$keyboard" ]
26+
if [[ -z "$keyboard" ]]
2727
then
2828
keyboard="us"
2929
fi
3030
echo
3131
echo "EXAMPLES: en_US | es_ES (don't add .UTF-8)"
3232
read -p "Locale: " locale
33-
if [ -z "$locale" ]
33+
if [[ -z "$locale" ]]
3434
then
3535
locale="en_US"
3636
fi
@@ -46,7 +46,7 @@ then
4646
echo
4747
read -sp "Re-type password: " rootpw2
4848
echo
49-
while [ $rootpw != $rootpw2 ]
49+
while [[ $rootpw != $rootpw2 ]]
5050
do
5151
echo
5252
echo "Passwords don't match. Try again"
@@ -63,7 +63,7 @@ then
6363
echo
6464
read -sp "Re-type password: " userpw2
6565
echo
66-
while [ $userpw != $userpw2 ]
66+
while [[ $userpw != $userpw2 ]]
6767
do
6868
echo
6969
echo "Passwords don't match. Try again"
@@ -216,6 +216,10 @@ then
216216
echo "Installing the Paru AUR Helper..."
217217
echo "cd && git clone https://aur.archlinux.org/paru-bin.git && cd paru-bin && makepkg -si --noconfirm && cd && rm -rf paru-bin" | arch-chroot /mnt /bin/bash -c "su $user"
218218
clear
219+
# bloat
220+
chmod +x bloat.sh
221+
./bloat.sh
222+
# end
219223
echo "SimplyArch Installer"
220224
echo
221225
echo ">>> Installation finished sucessfully <<<"

0 commit comments

Comments
 (0)