diff --git a/install.sh b/install.sh index dc640c4..eab4853 100644 --- a/install.sh +++ b/install.sh @@ -1,5 +1,18 @@ #!/bin/bash +# ███╗ ███╗ ██████╗ ██████╗ ██╗ ██╗███████╗ +# ████╗ ████║██╔═══██╗██╔══██╗██║ ██║██╔════╝ +# ██╔████╔██║██║ ██║██║ ██║██║ ██║███████╗ +# ██║╚██╔╝██║██║ ██║██║ ██║██║ ██║╚════██║ +# ██║ ╚═╝ ██║╚██████╔╝██████╔╝╚██████╔╝███████║ +# ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝ +# +# A hackable shell for Hyprland +# Installation Script for Arch Linux +# +# Repository: https://github.com/S4NKALP/Modus +# License: GPLv3 + 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 @@ -9,15 +22,24 @@ INSTALL_DIR="$HOME/Modus" PACKAGES=( fabric-cli-git + cava + cliphist gnome-bluetooth-3.0 + gobject-introspection + slurp + ffmpeg grimblast hypridle hyprlock hyprpicker imagemagick libnotify + matugen-bin + noto-fonts-emoji + nvtop + playerctl python-fabric-git - python-materialyoucolor-git + python-gobject python-pillow python-setproctitle python-toml @@ -26,21 +48,24 @@ PACKAGES=( python-pywayland python-pyxdg python-ijson - sddm-theme-corners-git + python-watchdog + python-pyotp + ttf-nerd-fonts-symbols-mono swww swappy wl-clipboard + webp-pixbuf-loader wf-recorder - libadwaita acpi - adw-gtk-theme brightnessctl - wlinhibit power-profile-daemon - ttf-chakra-petch ttf-tabler-icons + uwsm ) +echo "Starting Modus installation..." +echo "==================================" + # Ensure running on Arch Linux if ! grep -q "arch" /etc/os-release; then echo "This script is designed to run on Arch Linux." @@ -70,6 +95,8 @@ else aur_helper="paru" fi +echo "Using AUR helper: $aur_helper" + # Clone or update the Modus repository if [ -d "$INSTALL_DIR" ]; then echo "Updating Modus..." @@ -94,43 +121,17 @@ for pkg in "${PACKAGES[@]}"; do done if [ ${#to_update[@]} -gt 0 ]; then - echo "Updating outdated packages..." + echo "⬆Updating outdated packages..." $aur_helper -S --noconfirm "${to_update[@]}" || true else echo "All required packages are up-to-date." fi -# Backup and replace GTK configurations -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-$(date +%s)" -[[ -d "$HOME/.config/gtk-4.0" ]] && mv "$HOME/.config/gtk-4.0" "$HOME/.config/gtk-4.0-bk-$(date +%s)" -cp -r "$INSTALL_DIR/assets/gtk-3.0" "$HOME/.config/" || true -cp -r "$INSTALL_DIR/assets/gtk-4.0" "$HOME/.config/" || true - -# Install Icon Theme -echo "Installing Tela icon theme..." -tmpdir=$(mktemp -d) -git clone https://github.com/vinceliuice/Tela-icon-theme "$tmpdir/Tela-icon-theme" -cd "$tmpdir/Tela-icon-theme" -./install.sh nord -rm -rf "$tmpdir" - -# Install Vencord -echo "Installing Vencord..." -if command -v curl &>/dev/null; then - sh -c "$(curl -sS https://raw.githubusercontent.com/Vendicated/VencordInstaller/main/install.sh)" || true - mkdir -p "$HOME/.config/Vencord/settings/" - ln -sf "$HOME/.cache/material/material-discord.css" "$HOME/.config/Vencord/settings/quickCss.css" -else - echo "Skipping Vencord installation (curl not found)." -fi - -# Launch Modus +python "$INSTALL_DIR/config/config.py" echo "Starting Modus..." killall modus 2>/dev/null || true -python "$INSTALL_DIR/main.py" >/dev/null 2>&1 & -disown +uwsm app -- python "$INSTALL_DIR/main.py" > /dev/null 2>&1 & disown -echo "Installation complete." + +echo "Installation complete!"