#!/bin/bash # GeForce NOW Uninstaller for Arch Linux / Hyprland (Omarchy-aware) # Removes the official NVIDIA GeForce NOW flatpak and everything the # installer added. Leaves Flatpak / Flathub alone (other apps may use them). echo "=== GeForce NOW Uninstaller ===" echo "" # 1/6 - Flatpak app echo "[1/6] Removing GeForce NOW flatpak..." if flatpak uninstall -y --user com.nvidia.geforcenow 2>/dev/null; then echo " Removed." else echo " Not installed." fi # 2/6 - Flatpak remote echo "[2/6] Removing GeForce NOW flatpak remote..." if flatpak remote-delete --user GeForceNOW 2>/dev/null; then echo " Removed." else echo " Not present." fi # 3/6 - Launcher echo "[3/6] Removing launcher script..." if [ -e "$HOME/.local/bin/geforcenow" ]; then rm -f "$HOME/.local/bin/geforcenow" echo " Removed." else echo " Not present." fi # 4/6 - Desktop entries echo "[4/6] Removing desktop entries..." rm -f "$HOME/.local/share/applications/com.nvidia.geforcenow.desktop" rm -f "$HOME/.local/share/applications/geforcenow.desktop" rm -f "$HOME/Desktop/com.nvidia.geforcenow.desktop" 2>/dev/null update-desktop-database "$HOME/.local/share/applications/" 2>/dev/null echo " Removed." # 5/6 - App data echo "[5/6] Removing app data..." if [ -d "$HOME/.var/app/com.nvidia.geforcenow" ]; then rm -rf "$HOME/.var/app/com.nvidia.geforcenow" echo " Removed." else echo " Not present." fi # 6/6 - Hyprland window rule echo "[6/6] Removing Hyprland window rule..." HYPR_CONF_DIR="$HOME/.config/hypr" BEGIN_MARKER="# >>> geforcenow-native >>>" END_MARKER="# <<< geforcenow-native <<<" # Modern: strip the marker block from hyprland.conf if [ -f "$HYPR_CONF_DIR/hyprland.conf" ] && grep -q "$BEGIN_MARKER" "$HYPR_CONF_DIR/hyprland.conf" 2>/dev/null; then sed -i "/$BEGIN_MARKER/,/$END_MARKER/d" "$HYPR_CONF_DIR/hyprland.conf" echo " Removed marker block from $HYPR_CONF_DIR/hyprland.conf" fi # Legacy: scrub any stray pre-marker lines from older installs for conf in "$HYPR_CONF_DIR/hyprland.conf" "$HYPR_CONF_DIR/windowrules.conf" "$HYPR_CONF_DIR/windows.conf"; do if [ -f "$conf" ] && grep -q "GeForceNOW" "$conf" 2>/dev/null; then sed -i '/# GeForce NOW/d' "$conf" sed -i '/GeForceNOW/d' "$conf" echo " Cleaned legacy lines from $conf" fi done # Reload Hyprland if running hypr_root="${XDG_RUNTIME_DIR:-/run/user/$UID}/hypr" if [ -d "$hypr_root" ]; then for sock in "$hypr_root"/*/.socket.sock; do [ -e "$sock" ] || continue inst="${sock%/.socket.sock}"; inst="${inst##*/}" HYPRLAND_INSTANCE_SIGNATURE="$inst" hyprctl reload >/dev/null 2>&1 || true break done fi # Walker / Elephant refresh rm -rf "$HOME/.cache/walker" 2>/dev/null systemctl --user restart elephant.service 2>/dev/null || true # Reset flatpak overrides (no-op if app already gone) flatpak override --user --reset com.nvidia.geforcenow 2>/dev/null || true echo "" echo "=== Uninstall Complete ===" echo "" echo "GeForce NOW has been removed from your system." echo "" echo "Note: Flatpak and Flathub were left installed (other apps may use them)." echo " To also remove Flatpak completely, run:" echo " sudo pacman -Rns flatpak"