aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rwxr-xr-xboobs.sh12
-rw-r--r--progs.csv147
3 files changed, 154 insertions, 7 deletions
diff --git a/README.md b/README.md
index 0169e8f..207db35 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# BOOBS: Base OS and Options Bootstrapping Script
+# BOOBS: Base OS Options Bootstrapping Script
Taken from [LARBS](https://larbs.xyz/) and modified to suit my needs.
diff --git a/boobs.sh b/boobs.sh
index d19b90a..a56df17 100755
--- a/boobs.sh
+++ b/boobs.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# BOOBS: Base OS and Options Bootstrapping Script
+# BOOBS: Base OS Options Bootstrapping Script
# Yaroslav de la Peña Smirnov <yps@yaroslavps.com>
# based on Luke's Auto Rice Boostrapping Script (LARBS)
# by Luke Smith <luke@lukesmith.xyz>
@@ -9,7 +9,7 @@
### OPTIONS AND VARIABLES ###
dotfilesrepo="https://git.yaroslavps.com/configs/swayrice"
-progsfile=""
+progsfile="progs.csv"
aurhelper="yay"
@@ -27,7 +27,7 @@ error() {
welcomemsg() {
whiptail --title "Welcome!" \
- --msgbox "Welcome to the Base OS and Options Bootstrapping Script!\\n\\nThis script will automatically install a fully-featured Linux desktop, which I use as my main machine.\\n\\n-Luke" 10 60
+ --msgbox "Welcome to the Base OS Options Bootstrapping Script!\\n\\nThis script will automatically install a fully-featured Linux desktop, which I use as my main machine.\\n" 10 60
whiptail --title "Important Note!" --yes-button "All ready!" \
--no-button "Return..." \
@@ -69,6 +69,7 @@ adduserandpass() {
# Adds user `$name` with password $pass1.
whiptail --infobox "Adding user \"$name\"..." 7 50
useradd -m -s /bin/zsh "$name"
+ rm -r /home/$name/*
export repodir="/home/$name/src"
export pkgbuildsdir="/home/$name/src/pkgbuilds"
export dotsdir="/home/$name/src/personal"
@@ -164,7 +165,7 @@ installationloop() {
curl -Ls "$progsfile" | sed '/^#/d' >/tmp/progs.csv
total=$(wc -l </tmp/progs.csv)
aurinstalled=$(pacman -Qqm)
- while IFS=, read -r tag program comment; do
+ while IFS=$'\t' read -r tag program comment; do
n=$((n + 1))
echo "$comment" | grep -q "^\".*\"$" &&
comment="$(echo "$comment" | sed -E "s/(^\"|\"$)//g")"
@@ -251,8 +252,7 @@ sed -i "s/-j2/-j$(nproc)/;/^#MAKEFLAGS/s/^#//" /etc/makepkg.conf
# and all build dependencies are installed.
installationloop
-# Install the dotfiles in the user's home directory, but remove .git dir and
-# other unnecessary files.
+# Install the dotfiles in the user's home directory
putdotfiles "$dotfilesrepo" "$repobranch"
# Allow wheel users to sudo with password and allow several system commands
diff --git a/progs.csv b/progs.csv
new file mode 100644
index 0000000..a9e3ca5
--- /dev/null
+++ b/progs.csv
@@ -0,0 +1,147 @@
+#TYPE TAG '\t' NAME IN REPO (or git url) '\t' PURPOSE
+#Type tags:
+# A - AUR package name, to be installed with AUR helper (e.g. yay)
+# P - git repo URL with PKGBUILD, to be installed with makepkg -si
+# G - git repo URL with Makefile, to be installed with make install
+# O - official Artix/Arch package name, to be installed with pacman
+O zsh is a shell
+O zsh-syntax-highlighting provides shell syntax highlighting
+O foot is a simple terminal emulator
+O foot-terminfo provides terminfo for foot
+O wireguard-tools provides wireguard userspace utilities
+O mediainfo provides tag information about media files
+O highlight provides syntax highlighting for miscellaneous scripts
+O bind-tools provides DNS tools
+O sway is an i3-like Wayland compositor
+O swaybg sets background for sway
+O swayidle does something when computer has been idle
+O mako is a notification daemon for Wayland
+O waybar provides status bar for Wayland WMs
+O egl-wayland provides egl for Wayland
+O man-db provides manuals
+O xorg-server-xwayland provides X program compatibility layer
+O qt5-wayland provides Wayland support for Qt
+O wl-clipboard is a clipboard manager for wayland
+O dbus is needed by different programs
+O tmux is a terminal multiplexer
+O htop is a humane top
+O mupdf is a backend for zathura (and pdf reader in its own)
+O mpd is a music player daemon
+O ncmpcpp is an mpd client
+O mpc is an mpd control program
+O mpv is a video player
+O libnotify provides utilities for creating desktop notifications
+O cronie provides a cron program
+O cronie-runit provides cronie's runit scripts
+O metalog is a syslog log manager
+O metalog-runit provides metalog's runit scripts
+O dnsmasq is a DNS forwarder and DHCP server
+O networkmanager is what manages your network
+O networkmanager-runit provides NetworkManager's runit scripts
+O dhcpcd is a DHCP client
+O rsync is a fast copying tool for remote and local fiels
+O grim is a screenshot utility for Wayland
+O wf-recorder is a screen recording utility for Wayland
+O slurp is a tool for selecting coordinates on screen
+O ffmpeg provides libraries and a tool for manipulating media
+O w3m provides a TUI web browser and web tools
+O newsboat is a TUI RSS/Atom newsreader
+O wget is a tool for downloading files over HTTP
+O inkscape is a vector-graphics drawing program
+O gimp is a bitmap-graphics editing program
+O darktable is a photo editing program
+O gcc is the GNU compiler collection
+O gdb is the GNU debugger
+O clang is a C language compiler
+O wpa_supplicant provides tools for connecting over WiFi
+O fontconfig is a library for font access
+O papirus-icon-theme is an icon theme
+O alsa-utils provides utilities for ALSA
+O pipewire is a media router and processor
+O pipewire-alsa provides ALSA configuration for pipewire
+O pipewire-pulse is a pulseaudio backend for pipewire
+O wireplumber provides session management for pipewire
+O pamixer provides tools for controlling pulseaudio
+O imagemagick is an image manipulation library and tool
+O ntfs-3g provides support for NTFS
+O unzip is a ZIP archive tool
+O unrar is a RAR archive tool
+O gnome-themes-extra provides extra themes
+O telegram-desktop is a desktop Telegram client
+O qt5ct is a Qt configuration tool
+O bc is a CLI calculator
+O btrfs-progs provides userspace utils for btrfs
+O udisks2 is a removable disks management utility
+O dash provides a simple sh
+O perl-term-readline-gnu provides readline for perl scripts
+O transmission-cli is a bittorrent daemon
+O transmission-remote-gtk is a frontend for transmission
+O python-pynvim provides python compatibility for neovim
+O python-pip provides a package manager for python
+O python-pillow is needed by some scripts
+O python-i3ipc is a python library to control i3/sway
+O pandoc-bin is the statically-linked version of pandoc
+O acpi provides tools for ACPI readings
+O acpid is an ACPI events daemon
+O noto-fonts provides Noto fonts
+O noto-fonts-cjk provides Noto fonts for Chinese-Japanese-Korean
+O noto-fonts-emoji provides Noto emojis
+O ttf-joypixels is an 'icons' font
+O otf-latin-modern is an OTF version of the font used by LaTeX
+O otf-latinmodern-math is an OTF version of the font used by LaTeX formulas
+O polkit-gnome is an authentication agent
+O zathura is a reader for multiple electronic formats
+O zathura-pdf-mupdf is a PDF backend for zathura that uses mupdf
+O zathura-djvu is a DJVu backend for zathura
+O gst-libav is a libav plugin for gst used by some programs
+O blueman is a bluetooth manager
+O bluez is a bluetooth daemon
+O bluez-runit provides bluez's runit scripts
+O acpilight provides utilities for controlling display brightness
+O xdg-user-dirs provides utilities for managing user directories
+O xdg-desktop-portal provides screensharing integration for Wayland
+O xdg-desktop-portal-wlr provides xdg-desktop-portal backend for wlroots
+O terminus-font provides TTY fonts
+O jq is a json parser for shell scripts
+O isync is an IMAP mailbox synchronizer
+O neomutt is a TUI email client
+O notmuch is a programming for managing email
+O pass is a flexible password manager
+O translate-shell is a CLI frontend for google translate et al
+O gnome-keyring is used by other programs to store secrets
+O pacman-contrib provides additional pacman utilities
+O ntp-runit provides ntp's runit scripts
+O playerctl is a tool for controlling media players
+O mpv-mpris provides support for MPRIS to mpv
+O perl-image-exiftool is a tool for reading EXIF metadata
+O fzf is a fuzzy finder
+O chafa is a tool for graphics in the terminal
+O cups is a printing service daemon
+O cups-runit provides cups' runit scripts
+O qutebrowser is a browser with vim-like navigation
+O ripgrep is a grep-like program with additional features
+# AUR helper ¡THIS SHOULD GO BEFORE OTHER AUR PACKAGES!
+P https://aur.archlinux.org/yay.git helps install AUR packages
+# Custom PKGBUILDS
+P https://git.yaroslavps.com/pkgbuilds/nsxiv-yarps is nsxiv with custom config
+P https://git.yaroslavps.com/pkgbuilds/waybar-mpris-yarps-git is a waybar mpris module
+P https://git.yaroslavps.com/pkgbuilds/rofi-lbonn-yarps is a Wayland-compatible rofi fork
+# AUR programs
+A ttf-symbola is a font with block symbols
+A pam-gnupg provides tools for GPG key unlocking on login
+A ncpamixer is a TUI pulse audio mixer
+A lf-sixel-git is a fork of lf with sixel support
+A dragon-drop is a terminal drag-n-drop tool
+A swaylock-effects-git is a locker for sway
+A youtube-viewer is a CLI youtube viewer
+A abook is a TUI address book
+A compiledb helps generate compile_commands.json
+A rofi-calc is a rofi calculator module
+A rofi-file-browser-extended-git is a rofi file browsing module
+A networkmanager-dmenu-git is a rofi/dmenu network manager module
+A mpdris2 provides MPRIS support for mpd
+A yt-dlp-git is tool for downloading youtube videos
+A yt-dlp-drop-in emulates youtube-dl with yt-dlp
+A totp-cli generates TOTP codes from the command line
+A lsix-git used by scripts to draw images in the terminal
+A mkinitcpio-colors-git allows to set the TTY colors on boot