馃敡 Where my dotfiles lives in harmony and peace, most of the time
at main 99 lines 2.4 kB view raw
1#!/usr/bin/env bash 2set -euo pipefail 3 4DOTFILES=$(dirname "$(dirname "$(realpath "$0")")") 5 6packages=( 7 bind 8 blueman 9 bluez 10 cloudflare-warp-bin 11 tailscale 12 docker 13 docker-buildx 14 fwupd 15 gnome-keyring 16 less 17 mkinitcpio-firmware 18 network-manager-applet 19 networkmanager 20 pacman-contrib 21 power-profiles-daemon 22 rocm-smi-lib 23 sox 24 ufw 25 util-linux 26 xdg-user-dirs 27 google-cloud-cli 28 google-cloud-cli-bq 29) 30 31# Install system packages 32paru -S --needed --noconfirm "${packages[@]}" 33 34sudo rm -f /etc/sysctl.d/99-swappiness.conf 35sudo cp "${DOTFILES}/system/99-swappiness.conf" /etc/sysctl.d/99-swappiness.conf 36 37tmpfs_entry='tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=2G 0 0' 38if ! grep -Eq '^\s*tmpfs\s+/tmp\s+tmpfs\b' /etc/fstab; then 39 echo "$tmpfs_entry" | sudo tee -a /etc/fstab >/dev/null 40fi 41 42# Network Manager 43if ! systemctl is-enabled --quiet NetworkManager.service; then 44 sudo systemctl enable --now NetworkManager.service 45fi 46 47# Firewall 48if ! systemctl is-enabled --quiet ufw; then 49 sudo systemctl enable --now ufw 50 sudo ufw enable 51fi 52 53# SSD Trim 54if ! systemctl is-enabled --quiet fstrim.timer; then 55 sudo systemctl enable --now fstrim.timer 56fi 57 58# Out-of-memory daemon 59if ! systemctl is-enabled --quiet systemd-oomd.service; then 60 sudo systemctl enable --now systemd-oomd.service 61fi 62 63# Gnome Keyring 64if ! systemctl --user is-enabled --quiet gnome-keyring-daemon.socket; then 65 systemctl --user enable --now gnome-keyring-daemon.socket 66fi 67 68# Docker 69if ! systemctl is-enabled --quiet docker.service; then 70 sudo systemctl enable --now docker 71 72 # Add user to docker group 73 if ! groups "$USER" | grep -q "\bdocker\b"; then 74 sudo usermod -aG docker "$USER" 75 fi 76fi 77 78# Tailscale 79if ! systemctl is-enabled --quiet tailscaled; then 80 sudo systemctl enable --now tailscaled 81fi 82if ! tailscale status &>/dev/null; then 83 tailscale up 84fi 85 86# Enable WARP 87if ! systemctl is-enabled --quiet warp-svc; then 88 sudo systemctl enable --now warp-svc 89fi 90 91# Register WARP if not already registered 92if ! warp-cli registration show &>/dev/null; then 93 warp-cli registration new # Needs manual intervention, check help and see if it can be forced 94fi 95 96# Connect WARP if not already connected 97if ! warp-cli status | grep -q "Status update: Connected"; then 98 warp-cli connect 99fi