#!/bin/bash is_installed() { command -v gnome-shell &>/dev/null } run_update() { echo "Updating GNOME extensions..." # Reinstall gext if missing or broken (e.g. its pipx venv went stale after a Python upgrade) if ! ~/.local/bin/gext --version &> /dev/null; then echo "gext missing or broken, reinstalling..." pipx uninstall gnome-extensions-cli 2>/dev/null || true pipx install --python "$(which python3)" gnome-extensions-cli --system-site-packages fi # Update every enabled user extension to the latest version for this GNOME Shell. # The filesystem backend writes directly to ~/.local/share/gnome-shell/extensions; # GNOME Shell picks up the new code at next login. if ~/.local/bin/gext --filesystem update --user --yes; then echo "GNOME extensions up to date. Log out and back in to load any updated extensions." else echo "gext update failed; GNOME extensions were not updated." fi }