104 lines
2.3 KiB
Bash
104 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
set -e # Exit immediately if a command exits with a non-zero status
|
|
set -u # Treat unset variables as an error
|
|
set -o pipefail # Prevent errors in a pipeline from being masked
|
|
|
|
REPO_URL="https://github.com/S4NKALP/Modus"
|
|
INSTALL_DIR="$HOME/Modus"
|
|
|
|
PACKAGES=(
|
|
fabric-cli-git
|
|
gnome-bluetooth-3.0
|
|
grimblast
|
|
hypridle
|
|
hyprlock
|
|
hyprpicker
|
|
imagemagick
|
|
libnotify
|
|
python-fabric-git
|
|
python-materialyoucolor-git
|
|
python-pillow
|
|
python-setproctitle
|
|
python-toml
|
|
python-requests
|
|
python-numpy
|
|
python-pywayland
|
|
python-pyxdg
|
|
sddm-theme-corners-git
|
|
swww
|
|
swappy
|
|
wl-clipboard
|
|
wf-recorder
|
|
libadwaita
|
|
adw-gtk-theme
|
|
brightnessctl
|
|
power-profile-daemon
|
|
ttf-font-awesome
|
|
otf-font-awesome
|
|
ttf-material-symbols-variable-git
|
|
ttf-google-sans
|
|
ttf-opensans
|
|
ttf-robot
|
|
)
|
|
|
|
if ! grep -q "arch" /etc/os-release; then
|
|
echo ":: This script is designed to run on Arch Linux."
|
|
exit 1
|
|
fi
|
|
|
|
# Optional: Prevent running as root
|
|
if [ "$(id -u)" -eq 0 ]; then
|
|
echo ":: Please do not run this script as root."
|
|
exit 1
|
|
fi
|
|
|
|
# Install paru if not installed
|
|
if ! command -v yay &>/dev/null; then
|
|
echo ":: Installing paru..."
|
|
tmpdir=$(mktemp -d)
|
|
git clone https://aur.archlinux.org/paru.git "$tmpdir/paru"
|
|
cd "$tmpdir/paru"
|
|
makepkg -si --noconfirm
|
|
cd - >/dev/null
|
|
rm -rf "$tmpdir"
|
|
fi
|
|
|
|
# Clone or update the repository
|
|
if [ -d "$INSTALL_DIR" ]; then
|
|
echo ":: Updating Modus..."
|
|
git -C "$INSTALL_DIR" pull
|
|
else
|
|
echo ":: Cloning Modus..."
|
|
git clone "$REPO_URL" "$INSTALL_DIR"
|
|
fi
|
|
|
|
# Install required packages using paru
|
|
echo ":: Installing required packages..."
|
|
paru -S --needed --noconfirm "${PACKAGES[@]}" || true
|
|
|
|
# Backup and replace GTK configs
|
|
echo ":: Updating GTK configurations..."
|
|
mkdir -p "$HOME/.config"
|
|
[[ -d "$HOME/.config/gtk-3.0" ]] && mv "$HOME/.config/gtk-3.0" "$HOME/.config/gtk-3.0-bk"
|
|
[[ -d "$HOME/.config/gtk-4.0" ]] && mv "$HOME/.config/gtk-4.0" "$HOME/.config/gtk-4.0-bk"
|
|
|
|
cp -r "$INSTALL_DIR/assets/gtk-3.0" "$HOME/.config/"
|
|
cp -r "$INSTALL_DIR/assets/gtk-4.0" "$HOME/.config/"
|
|
|
|
# Install Icon
|
|
echo ":: Installing icon theme..."
|
|
tmpdir=$(mktemp -d)
|
|
cd /tmp/install
|
|
git clone https://github.com/vinceliuice/Tela-icon-theme
|
|
cd "$tmpdir/Tela-icon-theme"
|
|
./install.sh nord
|
|
|
|
# Launch Modus without terminal output
|
|
echo ":: Starting Modus..."
|
|
killall modus 2>/dev/null || true
|
|
python "$INSTALL_DIR/main.py" >/dev/null 2>&1 &
|
|
disown
|
|
|
|
echo ":: Installation complete."
|