my-scripts/installers/arch/PKGBUILD

231 lines
4.6 KiB
Bash

pkgname="ajh-setup"
pkgver="1.0.0"
pkgver="1"
pkgrel="1"
pkgdesc="Install my config for Arch based systems."
arch=("x86_64")
depends=(
#system core, provides core functionality like internet, sound, etc.
"pipewire"
"pipewire-alsa"
"pipewire-pulse"
"pipewire-jack"
"gst-plugin-pipewire"
"wireplumber"
"wireplumber-docs"
"alsa-utils"
"freetype2"
"gst-libav"
"btrfs-progs"
"fuse"
"mesa"
"libva-mesa-driver"
"connman"
"brightnessctl"
#system extra, extra programs that don't provide core functionality, but are still useful
"man-db"
"xdg-utils"
"xdg-user-dirs"
"pacman-contrib"
"python-urwid"
"ufw"
"wget"
"curl"
"zip"
"unzip"
"p7zip"
"dash"
"rsync"
"cronie"
"udisks2"
"udiskie"
"bc"
"opendoas"
"zsh"
"openssh"
"flatpak"
#devel
"clang"
"python-pip"
"shellcheck"
"fakeroot"
#"base-devel"
#multimedia
"pavucontrol"
"yt-dlp"
"mpd"
"mpv"
"imv"
#misc
"lynx"
"aria2" #optional dependency of ani-cli
#theming
"noto-fonts"
"noto-fonts-emoji"
"noto-fonts-cjk"
"lxappearance"
"qt5ct"
#tui, terminal programs and programs/libs used by them
"imagemagick"
"ffmpegthumbnailer"
"python-pdftotext"
"chafa"
"bat"
"ncmpcpp"
"bc"
"transmission-cli"
"neovim"
"libsixel"
#desktop, programs related to setting up a graphical user interface
"sway"
"swaybg"
"swayidle"
"swaylock"
"waybar"
"mako"
"wl-clipboard"
"grim"
"slurp"
"xorg-xwayland"
"gammastep"
"waylock"
"foot"
"foot-terminfo"
)
optdepends=()
license=("MIT")
#sha512sums=("SKIP")
systemd_setup() {
echo "setting up systemd services..."
sudo timedatectl set-ntp true
#system services
sudo systemctl enable connman.service
sudo systemctl enable ufw.service
sudo systemctl enable cronie.service
sudo systemctl enable systemd-timesyncd.service
#sudo systemctl enable nix-daemon.service
#user services
systemctl --user enable mako.service
systemctl --user enable mpd.service
systemctl --user enable pipewire.service
systemctl --user enable pipewire-pulse.service
systemctl --user enable wireplumber.service
echo "done setting up systemd services."
}
wireless() {
echo "Installing wireless programs..."
sudo pacman -S tlp iwd bluez bluez-utils
sudo systemctl enable tlp.service
sudo systemctl enable bluetooth.service
sudo systemctl enable connman.service
sudo systemctl enable iwd.service
echo "Done installing wireless programs."
}
configuration() {
echo "Starting installation configuration..."
#setup home directories
mkdir ~/docs/
mkdir ~/dl/
mkdir ~/media/
mkdir -p ~/.config/mpd/playlists
mkdir -p ~/.local/share/gnupg/
mkdir -p ~/.local/share/desktop
mkdir -p ~/.local/share/wineprefixes/default
mkdir -p ~/.local/share/templates
mkdir -p ~/.local/share/public
mkdir -p ~/media/audio
mkdir -p ~/media/img
mkdir -p ~/media/video
mkdir -p ~/.local/src/
#setup ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow http
sudo ufw allow https
#sudo ufw allow ssh
sudo ufw allow ntp
sudo ufw allow 67:68/tcp
sudo ufw allow 53
#allow torrent client traffic
sudo ufw allow 56881:56889/tcp
#rules to allow steam
sudo ufw allow 27000:27036/udp
sudo ufw allow 27036:27037/tcp
sudo ufw allow 4380/udp
sudo ufw enable
#zsh setup
chsh -s /bin/zsh "$USER"
#setup .zprofile and zsh history file
cd ~ || return
ln -s ~/.profile ~/.zprofile
mkdir -p ~/.cache/zsh
touch ~/.cache/zsh/history
#limits.conf configuration
#set limits for esync
sudo sh -c "echo '$USER hard nofile 524288' >> /etc/security/limits.conf"
#set limits for monero
sudo sh -c "echo '$USER hard memlock 2048' >> /etc/security/limits.conf"
sudo sh -c "echo '$USER hard memlock 2048' >> /etc/security/limits.conf"
#fixes
sudo sh -c 'echo "export _JAVA_AWT_WM_NONREPARENTING=1" >> /etc/profile.d/jre.sh'
#theming
sudo sh -c 'echo "FONT=Lat2-Terminus16" >> /etc/vconsole.conf'
ln -s /usr/share/backgrounds/archlinux/lone.jpg ~/.config/wall
ln -s ~/.config/Xresources ~/.Xdefaults
#download collapse OS if it is not already
if ! [ -f "$HOME/.local/src/collapseos-latest.tar.gz" ]; then
echo "downloading collapseOS"
cd "$HOME"/.local/src/
wget http://collapseos.org/files/collapseos-latest.tar.gz
cd -
fi
echo "Done performing installation configuration."
}
package() {
#do any installation steps here
echo "installing..."
systemd_setup
clear
echo "Install wireless programs? (iwd bluez and tlp) (y/N)?"
read input
[ "$input" = "y" ] && wireless
echo "installation complete."
}