From 068d55dd4bc0442ef6b7504f2946df854951ca81 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Mon, 10 Mar 2025 14:20:56 +0900 Subject: [PATCH 01/25] dropped pyprland --- CHANGELOGS.md | 3 +++ assets/hyprland-install/scripts/install-hyprland-git.sh | 1 - assets/hyprland-install/scripts/install-hyprland.sh | 1 - assets/hyprland-install/scripts/uninstall.sh | 3 +-- install-scripts/02-Final-Check.sh | 1 - install-scripts/hyprland.sh | 1 - 6 files changed, 4 insertions(+), 6 deletions(-) diff --git a/CHANGELOGS.md b/CHANGELOGS.md index 9189f60..886ace7 100644 --- a/CHANGELOGS.md +++ b/CHANGELOGS.md @@ -1,5 +1,8 @@ ## CHANGELOGS +## 10 March 2025 +- Dropped pyprland in favor of hyprland built in tool for a drop down like terminal and Desktop magnifier + ## 06 March 2025 - Switched to whiptail version for Y & N questions - switched eza to lsd diff --git a/assets/hyprland-install/scripts/install-hyprland-git.sh b/assets/hyprland-install/scripts/install-hyprland-git.sh index 14d249f..b7e3b3f 100755 --- a/assets/hyprland-install/scripts/install-hyprland-git.sh +++ b/assets/hyprland-install/scripts/install-hyprland-git.sh @@ -35,7 +35,6 @@ packages=( "hypridle-git" "xdg-desktop-portal-hyprland-git" "hyprpolkitagent-git" - "pyprland" ) # rotating stars progress diff --git a/assets/hyprland-install/scripts/install-hyprland.sh b/assets/hyprland-install/scripts/install-hyprland.sh index 8e64267..47024ff 100755 --- a/assets/hyprland-install/scripts/install-hyprland.sh +++ b/assets/hyprland-install/scripts/install-hyprland.sh @@ -35,7 +35,6 @@ packages=( "hypridle" "xdg-desktop-portal-hyprland" "hyprpolkitagent" - "pyprland" ) # rotating stars progress diff --git a/assets/hyprland-install/scripts/uninstall.sh b/assets/hyprland-install/scripts/uninstall.sh index 7a33395..d0003ee 100755 --- a/assets/hyprland-install/scripts/uninstall.sh +++ b/assets/hyprland-install/scripts/uninstall.sh @@ -44,8 +44,7 @@ packages=( "xdg-desktop-portal-hyprland" "xdg-desktop-portal-hyprland-git" "hyprpolkitagent" - "hyprpolkitagent-git" - "pyprland" + "hyprpolkitagent-git" ) # Function for uninstall packages diff --git a/install-scripts/02-Final-Check.sh b/install-scripts/02-Final-Check.sh index 6909bd6..5f818a2 100755 --- a/install-scripts/02-Final-Check.sh +++ b/install-scripts/02-Final-Check.sh @@ -18,7 +18,6 @@ packages=( hypridle hyprlock hyprland - pyprland ) # Local packages that should be in /usr/local/bin/ diff --git a/install-scripts/hyprland.sh b/install-scripts/hyprland.sh index 48cdda3..b58a508 100755 --- a/install-scripts/hyprland.sh +++ b/install-scripts/hyprland.sh @@ -6,7 +6,6 @@ hypr=( hyprland hypridle hyprlock - pyprland libspng ) From acc2238bf096717e2ec4ebfa01e2e6a4e2bdc2a0 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 12:53:03 +0900 Subject: [PATCH 02/25] added uninstall.sh --- uninstall.sh | 224 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100755 uninstall.sh diff --git a/uninstall.sh b/uninstall.sh new file mode 100755 index 0000000..ff65f92 --- /dev/null +++ b/uninstall.sh @@ -0,0 +1,224 @@ +#!/bin/bash +# 💫 https://github.com/JaKooLit 💫 # +# KooL Arch-Hyprland uninstall script # + +clear + +# Set some colors for output messages +OK="$(tput setaf 2)[OK]$(tput sgr0)" +ERROR="$(tput setaf 1)[ERROR]$(tput sgr0)" +NOTE="$(tput setaf 3)[NOTE]$(tput sgr0)" +INFO="$(tput setaf 4)[INFO]$(tput sgr0)" +WARN="$(tput setaf 1)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +MAGENTA="$(tput setaf 5)" +ORANGE="$(tput setaf 214)" +WARNING="$(tput setaf 1)" +YELLOW="$(tput setaf 3)" +GREEN="$(tput setaf 2)" +BLUE="$(tput setaf 4)" +SKY_BLUE="$(tput setaf 6)" +RESET="$(tput sgr0)" + +printf "\n%.0s" {1..2} +echo -e "\e[35m + ╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐ + ╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ UNINSTALL + ╩ ╩└─┘└─┘╩═╝ ╩ ╩ ┴ ┴ ┴└─┴─┘┴ ┴┘└┘─┴┘ Arch Linux +\e[0m" +printf "\n%.0s" {1..1} + + +# Show welcome message using whiptail with Yes/No options +whiptail --title "Arch-Hyprland KooL Dots Uninstall Script" --yesno \ +"Hello! This script will uninstall KooL Hyprland packages and configs. + + +You can choose packages and directories you want to remove. +NOTE: This will remove configs from ~/.config + + +WARNING: After uninstallation, your system may become unstable. + + +Shall we Proceed?" 20 80 + +# Check if the user confirmed to proceed +if [ $? -eq 1 ]; then + echo "$INFO uninstall process canceled." + exit 0 +fi + +# Function to remove selected packages +remove_packages() { + local selected_packages=($1) + for package in "${selected_packages[@]}"; do + package=$(echo "$package" | tr -d '"') # Remove extra quotes + if pacman -Qi "$package" &> /dev/null; then + echo "Removing package: $package" + sudo pacman -Rsc --noconfirm "$package" + else + echo "$INFO Package ${YELLOW}$package${RESET} not found." + fi + done +} + +# Function to remove selected directories +remove_directories() { + local selected_dirs=($1) + for dir in "${selected_dirs[@]}"; do + dir=$(echo "$dir" | tr -d '"') # Remove extra quotes + if [ -d "$HOME/.config/$dir" ]; then + echo "Removing directory: $HOME/.config/$dir" + rm -rf "$HOME/.config/$dir" + else + echo "$INFO Directory ${YELLOW}$HOME/.config/$dir${RESET} not found." + fi + done +} + +# Define the list of packages to choose from (with options_command tags) +packages=( + "cliphist" "clipboard manager" "off" + "grim" "screenshot tool" "off" + "hyprpolkitagent" "hyprland polkit agent" "off" + "imagemagick" "imagemagick" "off" + "inxi" "CLI system information" "off" + "jq" "json data" "off" + "kitty" "kitty-terminal" "off" + "kvantum" "QT apps theming" "off" + "network-manager-applet" "network-manager-applet" "off" + "pamixer" "pamixer" "off" + "pavucontrol" "pavucontrol" "off" + "pipewire-alsa" "pipewire-alsa" "off" + "playerctl" "playerctl" "off" + "qt5ct" "qt5ct" "off" + "qt6ct" "qt6ct" "off" + "qt6-svg" "qt6-svg" "off" + "rofi-wayland" "rofi-wayland" "off" + "slurp" "screenshot tool" "off" + "swappy" "screenshot tool" "off" + "swaync" "notification agent" "off" + "swww" "wallpaper engine" "off" + "unzip" "unzip" "off" + "wallust" "color pallete generator" "off" + "waybar" "wayland bar" "off" + "wl-clipboard" "clipboard manager" "off" + "wlogout" "logout menu" "off" + "yad" "dialog box" "off" + "brightnessctl" "brightnessctl" "off" + "btop" "resource monitor" "off" + "cava" "Cross-platform Audio Visualizer" "off" + "loupe" "image viewer" "off" + "fastfetch" "fastfetch" "off" + "gnome-system-monitor" "gnome-system-monitor" "off" + "mousepad" "simple text editor" "off" + "mpv" "multi-media player" "off" + "mpv-mpris" "mpv-plugin" "off" + "nvtop" "gpu resource monitor" "off" + "nwg-look" "gtk settings app" "off" + "nwg-displays" "display monitor configuration app" "off" + "qalculate-gtk" "calculater - QT" "off" + "thunar" "File Manager" "off" + "thunar-volman" "Volume Management" "off" + "tumbler" "Thumbnail Service" "off" + "ffmpegthumbnailer" "FFmpeg Thumbnailer" "off" + "thunar-archive-plugin" "Archive Plugin" "off" + "xarchiver" "Archive Manager" "off" + "yt-dlp" "video downloader" "off" +) + +# Define the list of directories to choose from (with options_command tags) +directories=( + "ags" "AGS desktop overview configuration" "off" + "btop" "btop configuration" "off" + "cava" "cava configuration" "off" + "fastfetch" "fastfetch configuration" "off" + "hypr" "main hyprland configuration" "off" + "kitty" "kitty terminal configuration" "off" + "Kvantum" "Kvantum-manager configuration" "off" + "qt5ct" "qt5ct configuration" "off" + "qt6ct" "qt6ct configuration" "off" + "rofi" "rofi configuration" "off" + "swappy" "swappy (screenshot tool) configuration" "off" + "swaync" "swaync (notification agent) configuration" "off" + "Thunar" "Thunar file manager configuration" "off" + "wallust" "wallust (color pallete) configuration" "off" + "waybar" "waybar configuration" "off" + "wlogout" "wlogout (logout menu) configuration" "off" +) + +# Use whiptail to choose packages to remove +package_choices=$(whiptail --title "Select Packages to Uninstall" --checklist \ +"Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 25 60 15 \ +"${packages[@]}" 3>&1 1>&2 2>&3) + +# Check if the user canceled the operation +if [ $? -eq 1 ]; then + echo "Operation canceled." + exit 0 +fi + +# Debugging output: Check what was selected +echo "Selected packages: '$package_choices'" # Debugging line + +# Check if the selected packages are empty or not +if [[ -z "$package_choices" ]]; then + echo "No packages selected." +else + # Convert the selected package list into an array and clean up quotes + IFS=" " read -r -a selected_packages <<< "$package_choices" + selected_packages=($(echo "${selected_packages[@]}" | tr -d '"')) # Clean up quotes + echo "Packages to remove: ${selected_packages[@]}" # Debugging line +fi + +# Use whiptail to choose directories to remove +dir_choices=$(whiptail --title "Select Directories to Remove" --checklist \ +"Select the directories you want to remove\nNOTE: This will remove configs from ~/.config\n\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 25 60 15 \ +"${directories[@]}" 3>&1 1>&2 2>&3) + +# Check if the user canceled the operation +if [ $? -eq 1 ]; then + echo "$INFO uninstall process canceled."v + exit 0 +fi + +# Debugging output: Check what was selected +echo "Selected directories: '$dir_choices'" # Debugging line + +# Check if the selected directories are empty or not +if [[ -z "$dir_choices" ]]; then + echo "$NOTE No directories selected." +else + # Convert the selected directories list into an array and clean up quotes + IFS=" " read -r -a selected_dirs <<< "$dir_choices" + selected_dirs=($(echo "${selected_dirs[@]}" | tr -d '"')) # Clean up quotes + echo "Directories to remove: ${selected_dirs[@]}" # Debugging line +fi + +# First confirmation - Warning about potential instability +if ! whiptail --title "Warning" --yesno \ +"Warning: Removing these packages and directories may cause your system to become unstable and you may not be able to recover it.\n\nAre you sure you want to proceed?" \ +10 80; then + echo "$INFO uninstall process canceled." + exit 0 +fi + +# Second confirmation - Final confirmation to proceed +if ! whiptail --title "Final Confirmation" --yesno \ +"Are you absolutely sure you want to remove the selected packages and directories?\n\nWARNING! This action is irreversible." \ +10 80; then + echo "$INFO uninstall process canceled." + exit 0 +fi + +# Start removing packages and directories +if [ ${#selected_packages[@]} -gt 0 ]; then + remove_packages "${selected_packages[@]}" +fi + +if [ ${#selected_dirs[@]} -gt 0 ]; then + remove_directories "${selected_dirs[@]}" +fi + +echo "$INFO Uninstall process completed." From c20d0682d1bba9daf6b3f8ae4e1f3d6a568e3816 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 12:56:53 +0900 Subject: [PATCH 03/25] updated uninstall.sh --- uninstall.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/uninstall.sh b/uninstall.sh index ff65f92..c2d5d4d 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -126,6 +126,8 @@ packages=( "thunar-archive-plugin" "Archive Plugin" "off" "xarchiver" "Archive Manager" "off" "yt-dlp" "video downloader" "off" + "xdg-desktop-portal-hyprland" "hyprland file picker" "off" + "xdg-desktop-portal-gtk" "gtk file picker" "off" ) # Define the list of directories to choose from (with options_command tags) From 5fb35a7d3e50964e42b113852ad9c85d1a6f6deb Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 13:07:19 +0900 Subject: [PATCH 04/25] minor adjustment --- uninstall.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index c2d5d4d..1dee3f3 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -152,7 +152,7 @@ directories=( # Use whiptail to choose packages to remove package_choices=$(whiptail --title "Select Packages to Uninstall" --checklist \ -"Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 25 60 15 \ +"Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 25 90 15 \ "${packages[@]}" 3>&1 1>&2 2>&3) # Check if the user canceled the operation @@ -176,7 +176,7 @@ fi # Use whiptail to choose directories to remove dir_choices=$(whiptail --title "Select Directories to Remove" --checklist \ -"Select the directories you want to remove\nNOTE: This will remove configs from ~/.config\n\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 25 60 15 \ +"Select the directories you want to remove\nNOTE: This will remove configs from ~/.config\n\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 25 90 15 \ "${directories[@]}" 3>&1 1>&2 2>&3) # Check if the user canceled the operation From ccb1ceb29ef3b96fa856ca485a57c248a23b59ef Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 13:12:20 +0900 Subject: [PATCH 05/25] made it like a loop --- uninstall.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index 1dee3f3..d1a2070 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -56,13 +56,18 @@ remove_packages() { package=$(echo "$package" | tr -d '"') # Remove extra quotes if pacman -Qi "$package" &> /dev/null; then echo "Removing package: $package" - sudo pacman -Rsc --noconfirm "$package" + if ! sudo pacman -Rsc --noconfirm "$package"; then + echo "$ERROR Failed to remove package: $package" + else + echo "$OK Successfully removed package: $package" + fi else echo "$INFO Package ${YELLOW}$package${RESET} not found." fi done } + # Function to remove selected directories remove_directories() { local selected_dirs=($1) @@ -70,13 +75,18 @@ remove_directories() { dir=$(echo "$dir" | tr -d '"') # Remove extra quotes if [ -d "$HOME/.config/$dir" ]; then echo "Removing directory: $HOME/.config/$dir" - rm -rf "$HOME/.config/$dir" + if ! rm -rf "$HOME/.config/$dir"; then + echo "$ERROR Failed to remove directory: $HOME/.config/$dir" + else + echo "$OK Successfully removed directory: $HOME/.config/$dir" + fi else echo "$INFO Directory ${YELLOW}$HOME/.config/$dir${RESET} not found." fi done } + # Define the list of packages to choose from (with options_command tags) packages=( "cliphist" "clipboard manager" "off" @@ -152,7 +162,7 @@ directories=( # Use whiptail to choose packages to remove package_choices=$(whiptail --title "Select Packages to Uninstall" --checklist \ -"Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 25 90 15 \ +"Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 30 90 20 \ "${packages[@]}" 3>&1 1>&2 2>&3) # Check if the user canceled the operation From bab65fd28d2150dc6413ffd020132ab781156d95 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 13:18:47 +0900 Subject: [PATCH 06/25] updated --- uninstall.sh | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index d1a2070..1a35a03 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -28,7 +28,6 @@ echo -e "\e[35m \e[0m" printf "\n%.0s" {1..1} - # Show welcome message using whiptail with Yes/No options whiptail --title "Arch-Hyprland KooL Dots Uninstall Script" --yesno \ "Hello! This script will uninstall KooL Hyprland packages and configs. @@ -67,7 +66,6 @@ remove_packages() { done } - # Function to remove selected directories remove_directories() { local selected_dirs=($1) @@ -86,7 +84,6 @@ remove_directories() { done } - # Define the list of packages to choose from (with options_command tags) packages=( "cliphist" "clipboard manager" "off" @@ -162,7 +159,7 @@ directories=( # Use whiptail to choose packages to remove package_choices=$(whiptail --title "Select Packages to Uninstall" --checklist \ -"Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 30 90 20 \ +"Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 35 90 25 \ "${packages[@]}" 3>&1 1>&2 2>&3) # Check if the user canceled the operation @@ -180,23 +177,22 @@ if [[ -z "$package_choices" ]]; then else # Convert the selected package list into an array and clean up quotes IFS=" " read -r -a selected_packages <<< "$package_choices" - selected_packages=($(echo "${selected_packages[@]}" | tr -d '"')) # Clean up quotes - echo "Packages to remove: ${selected_packages[@]}" # Debugging line + selected_packages=($(echo "${selected_packages[@]}" | tr -d '"')) + echo "Packages to remove: ${selected_packages[@]}" fi # Use whiptail to choose directories to remove dir_choices=$(whiptail --title "Select Directories to Remove" --checklist \ -"Select the directories you want to remove\nNOTE: This will remove configs from ~/.config\n\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 25 90 15 \ +"Select the directories you want to remove\nNOTE: This will remove configs from ~/.config\n\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 28 90 18 \ "${directories[@]}" 3>&1 1>&2 2>&3) # Check if the user canceled the operation if [ $? -eq 1 ]; then - echo "$INFO uninstall process canceled."v + echo "$INFO uninstall process canceled." exit 0 fi -# Debugging output: Check what was selected -echo "Selected directories: '$dir_choices'" # Debugging line +echo "Selected directories: '$dir_choices'" # Check if the selected directories are empty or not if [[ -z "$dir_choices" ]]; then @@ -204,8 +200,8 @@ if [[ -z "$dir_choices" ]]; then else # Convert the selected directories list into an array and clean up quotes IFS=" " read -r -a selected_dirs <<< "$dir_choices" - selected_dirs=($(echo "${selected_dirs[@]}" | tr -d '"')) # Clean up quotes - echo "Directories to remove: ${selected_dirs[@]}" # Debugging line + selected_dirs=($(echo "${selected_dirs[@]}" | tr -d '"')) + echo "Directories to remove: ${selected_dirs[@]}" fi # First confirmation - Warning about potential instability From c93101a99ee12616d02aae541aef7b820d08b017 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 13:24:35 +0900 Subject: [PATCH 07/25] updated uninstall.sh --- uninstall.sh | 92 ++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index 1a35a03..095d236 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -20,7 +20,7 @@ BLUE="$(tput setaf 4)" SKY_BLUE="$(tput setaf 6)" RESET="$(tput sgr0)" -printf "\n%.0s" {1..2} +printf "\n%.0s" {1..2} echo -e "\e[35m ╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐ ╠╩╗│ ││ │║ ╠═╣└┬┘├─┘├┬┘│ ├─┤│││ ││ UNINSTALL @@ -32,14 +32,11 @@ printf "\n%.0s" {1..1} whiptail --title "Arch-Hyprland KooL Dots Uninstall Script" --yesno \ "Hello! This script will uninstall KooL Hyprland packages and configs. - You can choose packages and directories you want to remove. NOTE: This will remove configs from ~/.config - WARNING: After uninstallation, your system may become unstable. - Shall we Proceed?" 20 80 # Check if the user confirmed to proceed @@ -52,7 +49,7 @@ fi remove_packages() { local selected_packages=($1) for package in "${selected_packages[@]}"; do - package=$(echo "$package" | tr -d '"') # Remove extra quotes + package=$(echo "$package" | tr -d '"') if pacman -Qi "$package" &> /dev/null; then echo "Removing package: $package" if ! sudo pacman -Rsc --noconfirm "$package"; then @@ -70,7 +67,7 @@ remove_packages() { remove_directories() { local selected_dirs=($1) for dir in "${selected_dirs[@]}"; do - dir=$(echo "$dir" | tr -d '"') # Remove extra quotes + dir=$(echo "$dir" | tr -d '"') if [ -d "$HOME/.config/$dir" ]; then echo "Removing directory: $HOME/.config/$dir" if ! rm -rf "$HOME/.config/$dir"; then @@ -157,52 +154,55 @@ directories=( "wlogout" "wlogout (logout menu) configuration" "off" ) -# Use whiptail to choose packages to remove -package_choices=$(whiptail --title "Select Packages to Uninstall" --checklist \ -"Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 35 90 25 \ -"${packages[@]}" 3>&1 1>&2 2>&3) +# Loop for package selection until user selects something or cancels +while true; do + package_choices=$(whiptail --title "Select Packages to Uninstall" --checklist \ + "Select the packages you want to remove\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 35 90 25 \ + "${packages[@]}" 3>&1 1>&2 2>&3) -# Check if the user canceled the operation -if [ $? -eq 1 ]; then - echo "Operation canceled." - exit 0 -fi + # Check if the user canceled the operation + if [ $? -eq 1 ]; then + echo "$INFO uninstall process canceled." + exit 0 + fi -# Debugging output: Check what was selected -echo "Selected packages: '$package_choices'" # Debugging line + # If no packages are selected, ask again + if [[ -z "$package_choices" ]]; then + echo "$NOTE No packages selected. Please select at least one package." + else + # Convert the selected package list into an array and clean up quotes + IFS=" " read -r -a selected_packages <<< "$package_choices" + selected_packages=($(echo "${selected_packages[@]}" | tr -d '"')) + echo "Packages to remove: ${selected_packages[@]}" + break + fi +done -# Check if the selected packages are empty or not -if [[ -z "$package_choices" ]]; then - echo "No packages selected." -else - # Convert the selected package list into an array and clean up quotes - IFS=" " read -r -a selected_packages <<< "$package_choices" - selected_packages=($(echo "${selected_packages[@]}" | tr -d '"')) - echo "Packages to remove: ${selected_packages[@]}" -fi +# Loop for directory selection until user selects something or cancels +while true; do + dir_choices=$(whiptail --title "Select Directories to Remove" --checklist \ + "Select the directories you want to remove\nNOTE: This will remove configs from ~/.config\n\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 28 90 18 \ + "${directories[@]}" 3>&1 1>&2 2>&3) -# Use whiptail to choose directories to remove -dir_choices=$(whiptail --title "Select Directories to Remove" --checklist \ -"Select the directories you want to remove\nNOTE: This will remove configs from ~/.config\n\nNOTE: 'SPACEBAR' to select & 'TAB' key to change selection" 28 90 18 \ -"${directories[@]}" 3>&1 1>&2 2>&3) + # Check if the user canceled the operation + if [ $? -eq 1 ]; then + echo "$INFO uninstall process canceled." + exit 0 + fi -# Check if the user canceled the operation -if [ $? -eq 1 ]; then - echo "$INFO uninstall process canceled." - exit 0 -fi + echo "Selected directories: '$dir_choices'" -echo "Selected directories: '$dir_choices'" - -# Check if the selected directories are empty or not -if [[ -z "$dir_choices" ]]; then - echo "$NOTE No directories selected." -else - # Convert the selected directories list into an array and clean up quotes - IFS=" " read -r -a selected_dirs <<< "$dir_choices" - selected_dirs=($(echo "${selected_dirs[@]}" | tr -d '"')) - echo "Directories to remove: ${selected_dirs[@]}" -fi + # If no directories are selected, ask again + if [[ -z "$dir_choices" ]]; then + echo "$NOTE No directories selected. Please select at least one directory." + else + # Convert the selected directories list into an array and clean up quotes + IFS=" " read -r -a selected_dirs <<< "$dir_choices" + selected_dirs=($(echo "${selected_dirs[@]}" | tr -d '"')) + echo "Directories to remove: ${selected_dirs[@]}" + break + fi +done # First confirmation - Warning about potential instability if ! whiptail --title "Warning" --yesno \ From 64040f0b341a085fec0031cabbdfbf3a8c79ef95 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 13:34:18 +0900 Subject: [PATCH 08/25] minor uninstall.sh update --- uninstall.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index 095d236..103cac5 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -49,7 +49,7 @@ fi remove_packages() { local selected_packages=($1) for package in "${selected_packages[@]}"; do - package=$(echo "$package" | tr -d '"') + package=$(echo "$package" | tr -d '"') if pacman -Qi "$package" &> /dev/null; then echo "Removing package: $package" if ! sudo pacman -Rsc --noconfirm "$package"; then @@ -58,7 +58,7 @@ remove_packages() { echo "$OK Successfully removed package: $package" fi else - echo "$INFO Package ${YELLOW}$package${RESET} not found." + echo "$INFO Package ${YELLOW}$package${RESET} not found. Skipping." fi done } @@ -76,7 +76,7 @@ remove_directories() { echo "$OK Successfully removed directory: $HOME/.config/$dir" fi else - echo "$INFO Directory ${YELLOW}$HOME/.config/$dir${RESET} not found." + echo "$INFO Directory ${YELLOW}$HOME/.config/$dir${RESET} not found. Skipping." fi done } @@ -172,7 +172,7 @@ while true; do else # Convert the selected package list into an array and clean up quotes IFS=" " read -r -a selected_packages <<< "$package_choices" - selected_packages=($(echo "${selected_packages[@]}" | tr -d '"')) + selected_packages=($(echo "${selected_packages[@]}" | tr -d '"')) echo "Packages to remove: ${selected_packages[@]}" break fi @@ -190,8 +190,6 @@ while true; do exit 0 fi - echo "Selected directories: '$dir_choices'" - # If no directories are selected, ask again if [[ -z "$dir_choices" ]]; then echo "$NOTE No directories selected. Please select at least one directory." From 92b279e5a0b85c289c09d416afd7baf46f5f7dba Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 13:38:57 +0900 Subject: [PATCH 09/25] updated uninstall.sh --- uninstall.sh | 101 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 62 insertions(+), 39 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index 103cac5..de693ee 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -45,41 +45,6 @@ if [ $? -eq 1 ]; then exit 0 fi -# Function to remove selected packages -remove_packages() { - local selected_packages=($1) - for package in "${selected_packages[@]}"; do - package=$(echo "$package" | tr -d '"') - if pacman -Qi "$package" &> /dev/null; then - echo "Removing package: $package" - if ! sudo pacman -Rsc --noconfirm "$package"; then - echo "$ERROR Failed to remove package: $package" - else - echo "$OK Successfully removed package: $package" - fi - else - echo "$INFO Package ${YELLOW}$package${RESET} not found. Skipping." - fi - done -} - -# Function to remove selected directories -remove_directories() { - local selected_dirs=($1) - for dir in "${selected_dirs[@]}"; do - dir=$(echo "$dir" | tr -d '"') - if [ -d "$HOME/.config/$dir" ]; then - echo "Removing directory: $HOME/.config/$dir" - if ! rm -rf "$HOME/.config/$dir"; then - echo "$ERROR Failed to remove directory: $HOME/.config/$dir" - else - echo "$OK Successfully removed directory: $HOME/.config/$dir" - fi - else - echo "$INFO Directory ${YELLOW}$HOME/.config/$dir${RESET} not found. Skipping." - fi - done -} # Define the list of packages to choose from (with options_command tags) packages=( @@ -218,11 +183,69 @@ if ! whiptail --title "Final Confirmation" --yesno \ exit 0 fi -# Start removing packages and directories -if [ ${#selected_packages[@]} -gt 0 ]; then - remove_packages "${selected_packages[@]}" -fi +# Function to remove selected packages +remove_packages() { + local selected_packages=($1) + for package in "${selected_packages[@]}"; do + package=$(echo "$package" | tr -d '"') # Remove extra quotes + if pacman -Qi "$package" &> /dev/null; then + echo "Removing package: $package" + if ! sudo pacman -Rsc --noconfirm "$package"; then + echo "$ERROR Failed to remove package: $package" + else + echo "$OK Successfully removed package: $package" + fi + else + echo "$INFO Package ${YELLOW}$package${RESET} not found. Skipping." + fi + done +} +# Function to remove selected directories +remove_directories() { + local selected_dirs=($1) + for dir in "${selected_dirs[@]}"; do + dir=$(echo "$dir" | tr -d '"') # Remove extra quotes + if [ -d "$HOME/.config/$dir" ]; then + echo "Removing directory: $HOME/.config/$dir" + if ! rm -rf "$HOME/.config/$dir"; then + echo "$ERROR Failed to remove directory: $HOME/.config/$dir" + else + echo "$OK Successfully removed directory: $HOME/.config/$dir" + fi + else + echo "$INFO Directory ${YELLOW}$HOME/.config/$dir${RESET} not found. Skipping." + fi + done +} + +# Loop to attempt removing packages multiple times +MAX_ATTEMPTS=2 +ATTEMPT=0 +while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do + # Remove packages + if [ ${#selected_packages[@]} -gt 0 ]; then + remove_packages "${selected_packages[@]}" + fi + + # Check if any packages still need to be removed, retry if needed + MISSING_PACKAGE_COUNT=0 + for package in "${selected_packages[@]}"; do + package=$(echo "$package" | tr -d '"') # Clean extra quotes + if pacman -Qi "$package" &> /dev/null; then + MISSING_PACKAGE_COUNT=$((MISSING_PACKAGE_COUNT + 1)) + fi + done + + if [ $MISSING_PACKAGE_COUNT -gt 0 ]; then + ATTEMPT=$((ATTEMPT + 1)) + echo "Attempt #$ATTEMPT failed, retrying..." + else + break + fi +done + +# Proceed to removing directories if [ ${#selected_dirs[@]} -gt 0 ]; then remove_directories "${selected_dirs[@]}" fi From 9e144ad61a88e4d29fef512055224c90740c6095 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 13:42:29 +0900 Subject: [PATCH 10/25] switched to a tmp file to remove packages and directories --- uninstall.sh | 98 +++++++++++++++++++++++----------------------------- 1 file changed, 44 insertions(+), 54 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index de693ee..5593c21 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -45,6 +45,39 @@ if [ $? -eq 1 ]; then exit 0 fi +# Function to remove selected packages +remove_packages() { + local selected_packages_file=$1 + while read -r package; do + if pacman -Qi "$package" &> /dev/null; then + echo "Removing package: $package" + if ! sudo pacman -Rsc --noconfirm "$package"; then + echo "$ERROR Failed to remove package: $package" + else + echo "$OK Successfully removed package: $package" + fi + else + echo "$INFO Package ${YELLOW}$package${RESET} not found. Skipping." + fi + done < "$selected_packages_file" +} + +# Function to remove selected directories +remove_directories() { + local selected_dirs_file=$1 + while read -r dir; do + if [ -d "$HOME/.config/$dir" ]; then + echo "Removing directory: $HOME/.config/$dir" + if ! rm -rf "$HOME/.config/$dir"; then + echo "$ERROR Failed to remove directory: $HOME/.config/$dir" + else + echo "$OK Successfully removed directory: $HOME/.config/$dir" + fi + else + echo "$INFO Directory ${YELLOW}$HOME/.config/$dir${RESET} not found. Skipping." + fi + done < "$selected_dirs_file" +} # Define the list of packages to choose from (with options_command tags) packages=( @@ -127,7 +160,7 @@ while true; do # Check if the user canceled the operation if [ $? -eq 1 ]; then - echo "$INFO uninstall process canceled." + echo "Operation canceled." exit 0 fi @@ -135,10 +168,9 @@ while true; do if [[ -z "$package_choices" ]]; then echo "$NOTE No packages selected. Please select at least one package." else - # Convert the selected package list into an array and clean up quotes - IFS=" " read -r -a selected_packages <<< "$package_choices" - selected_packages=($(echo "${selected_packages[@]}" | tr -d '"')) - echo "Packages to remove: ${selected_packages[@]}" + # Save the selected package list to a temporary file + echo "$package_choices" | tr -d '"' > /tmp/selected_packages.txt + echo "Packages to remove: $package_choices" break fi done @@ -159,10 +191,9 @@ while true; do if [[ -z "$dir_choices" ]]; then echo "$NOTE No directories selected. Please select at least one directory." else - # Convert the selected directories list into an array and clean up quotes - IFS=" " read -r -a selected_dirs <<< "$dir_choices" - selected_dirs=($(echo "${selected_dirs[@]}" | tr -d '"')) - echo "Directories to remove: ${selected_dirs[@]}" + # Save the selected directories list to a temporary file + echo "$dir_choices" | tr -d '"' > /tmp/selected_directories.txt + echo "Directories to remove: $dir_choices" break fi done @@ -183,59 +214,20 @@ if ! whiptail --title "Final Confirmation" --yesno \ exit 0 fi -# Function to remove selected packages -remove_packages() { - local selected_packages=($1) - for package in "${selected_packages[@]}"; do - package=$(echo "$package" | tr -d '"') # Remove extra quotes - if pacman -Qi "$package" &> /dev/null; then - echo "Removing package: $package" - if ! sudo pacman -Rsc --noconfirm "$package"; then - echo "$ERROR Failed to remove package: $package" - else - echo "$OK Successfully removed package: $package" - fi - else - echo "$INFO Package ${YELLOW}$package${RESET} not found. Skipping." - fi - done -} - -# Function to remove selected directories -remove_directories() { - local selected_dirs=($1) - for dir in "${selected_dirs[@]}"; do - dir=$(echo "$dir" | tr -d '"') # Remove extra quotes - if [ -d "$HOME/.config/$dir" ]; then - echo "Removing directory: $HOME/.config/$dir" - if ! rm -rf "$HOME/.config/$dir"; then - echo "$ERROR Failed to remove directory: $HOME/.config/$dir" - else - echo "$OK Successfully removed directory: $HOME/.config/$dir" - fi - else - echo "$INFO Directory ${YELLOW}$HOME/.config/$dir${RESET} not found. Skipping." - fi - done -} - # Loop to attempt removing packages multiple times MAX_ATTEMPTS=2 ATTEMPT=0 while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do # Remove packages - if [ ${#selected_packages[@]} -gt 0 ]; then - remove_packages "${selected_packages[@]}" - fi + remove_packages /tmp/selected_packages.txt # Check if any packages still need to be removed, retry if needed MISSING_PACKAGE_COUNT=0 - for package in "${selected_packages[@]}"; do - package=$(echo "$package" | tr -d '"') # Clean extra quotes + while read -r package; do if pacman -Qi "$package" &> /dev/null; then MISSING_PACKAGE_COUNT=$((MISSING_PACKAGE_COUNT + 1)) fi - done + done < /tmp/selected_packages.txt if [ $MISSING_PACKAGE_COUNT -gt 0 ]; then ATTEMPT=$((ATTEMPT + 1)) @@ -246,8 +238,6 @@ while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do done # Proceed to removing directories -if [ ${#selected_dirs[@]} -gt 0 ]; then - remove_directories "${selected_dirs[@]}" -fi +remove_directories /tmp/selected_directories.txt echo "$INFO Uninstall process completed." From e632e64fce9bd9c0b184a5ab048639b84a92d736 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 13:53:25 +0900 Subject: [PATCH 11/25] final uninstall script adjustments? --- uninstall.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index 5593c21..e22d3dc 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -39,7 +39,6 @@ WARNING: After uninstallation, your system may become unstable. Shall we Proceed?" 20 80 -# Check if the user confirmed to proceed if [ $? -eq 1 ]; then echo "$INFO uninstall process canceled." exit 0 @@ -160,7 +159,7 @@ while true; do # Check if the user canceled the operation if [ $? -eq 1 ]; then - echo "Operation canceled." + echo "$INFO uninstall process canceled." exit 0 fi @@ -168,8 +167,7 @@ while true; do if [[ -z "$package_choices" ]]; then echo "$NOTE No packages selected. Please select at least one package." else - # Save the selected package list to a temporary file - echo "$package_choices" | tr -d '"' > /tmp/selected_packages.txt + echo "$package_choices" | tr -d '"' | tr ' ' '\n' > /tmp/selected_packages.txt echo "Packages to remove: $package_choices" break fi @@ -191,8 +189,8 @@ while true; do if [[ -z "$dir_choices" ]]; then echo "$NOTE No directories selected. Please select at least one directory." else - # Save the selected directories list to a temporary file - echo "$dir_choices" | tr -d '"' > /tmp/selected_directories.txt + # Save each selected directory to a new line in the temporary file + echo "$dir_choices" | tr -d '"' | tr ' ' '\n' > /tmp/selected_directories.txt echo "Directories to remove: $dir_choices" break fi @@ -214,7 +212,8 @@ if ! whiptail --title "Final Confirmation" --yesno \ exit 0 fi -# Loop to attempt removing packages multiple times +printf "\n%.0s" {1..1} +printf "\n%s${SKY_BLUE}Attempting to remove selected packages${RESET}\n" "${NOTE}" MAX_ATTEMPTS=2 ATTEMPT=0 while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do @@ -237,7 +236,10 @@ while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do fi done -# Proceed to removing directories +printf "\n%.0s" {1..1} +printf "\n%s${SKY_BLUE}Attempting to remove selected directories${RESET}\n" "${NOTE}" remove_directories /tmp/selected_directories.txt -echo "$INFO Uninstall process completed." +printf "\n%.0s" {1..1} +echo "$INFO Uninstall process completed. You can now reboot or logout" +printf "\n%.0s" {1..1} \ No newline at end of file From 3c65d6b5b6dfb662354936633e68a8b91996b7ea Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 13:57:21 +0900 Subject: [PATCH 12/25] forgot to add hyprland :) --- uninstall.sh | 49 ++++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index e22d3dc..cdb486c 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -80,55 +80,58 @@ remove_directories() { # Define the list of packages to choose from (with options_command tags) packages=( + "btop" "resource monitor" "off" + "brightnessctl" "brightnessctl" "off" + "cava" "Cross-platform Audio Visualizer" "off" "cliphist" "clipboard manager" "off" + "fastfetch" "fastfetch" "off" + "ffmpegthumbnailer" "FFmpeg Thumbnailer" "off" + "gnome-system-monitor" "gnome-system-monitor" "off" "grim" "screenshot tool" "off" + "hypridle" "hyprland idling agent" "off" + "hyprland" "hyprland main package" "off" + "hyprlock" "lockscreen" "off" "hyprpolkitagent" "hyprland polkit agent" "off" "imagemagick" "imagemagick" "off" "inxi" "CLI system information" "off" "jq" "json data" "off" "kitty" "kitty-terminal" "off" "kvantum" "QT apps theming" "off" + "loupe" "image viewer" "off" + "mousepad" "simple text editor" "off" + "mpv" "multi-media player" "off" + "mpv-mpris" "mpv-plugin" "off" "network-manager-applet" "network-manager-applet" "off" + "nvtop" "gpu resource monitor" "off" + "nwg-displays" "display monitor configuration app" "off" + "nwg-look" "gtk settings app" "off" "pamixer" "pamixer" "off" "pavucontrol" "pavucontrol" "off" "pipewire-alsa" "pipewire-alsa" "off" "playerctl" "playerctl" "off" + "qalculate-gtk" "calculater - QT" "off" "qt5ct" "qt5ct" "off" - "qt6ct" "qt6ct" "off" "qt6-svg" "qt6-svg" "off" + "qt6ct" "qt6ct" "off" "rofi-wayland" "rofi-wayland" "off" "slurp" "screenshot tool" "off" "swappy" "screenshot tool" "off" "swaync" "notification agent" "off" "swww" "wallpaper engine" "off" + "thunar" "File Manager" "off" + "thunar-archive-plugin" "Archive Plugin" "off" + "thunar-volman" "Volume Management" "off" + "tumbler" "Thumbnail Service" "off" "unzip" "unzip" "off" "wallust" "color pallete generator" "off" "waybar" "wayland bar" "off" "wl-clipboard" "clipboard manager" "off" "wlogout" "logout menu" "off" - "yad" "dialog box" "off" - "brightnessctl" "brightnessctl" "off" - "btop" "resource monitor" "off" - "cava" "Cross-platform Audio Visualizer" "off" - "loupe" "image viewer" "off" - "fastfetch" "fastfetch" "off" - "gnome-system-monitor" "gnome-system-monitor" "off" - "mousepad" "simple text editor" "off" - "mpv" "multi-media player" "off" - "mpv-mpris" "mpv-plugin" "off" - "nvtop" "gpu resource monitor" "off" - "nwg-look" "gtk settings app" "off" - "nwg-displays" "display monitor configuration app" "off" - "qalculate-gtk" "calculater - QT" "off" - "thunar" "File Manager" "off" - "thunar-volman" "Volume Management" "off" - "tumbler" "Thumbnail Service" "off" - "ffmpegthumbnailer" "FFmpeg Thumbnailer" "off" - "thunar-archive-plugin" "Archive Plugin" "off" - "xarchiver" "Archive Manager" "off" - "yt-dlp" "video downloader" "off" - "xdg-desktop-portal-hyprland" "hyprland file picker" "off" "xdg-desktop-portal-gtk" "gtk file picker" "off" + "xdg-desktop-portal-hyprland" "hyprland file picker" "off" + "yad" "dialog box" "off" + "yt-dlp" "video downloader" "off" + "xarchiver" "Archive Manager" "off" ) # Define the list of directories to choose from (with options_command tags) From a5aab435fdc84b0d8bc7228653ee2a6770b1687b Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 14:12:45 +0900 Subject: [PATCH 13/25] updated --- uninstall.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/uninstall.sh b/uninstall.sh index cdb486c..8e96beb 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -106,6 +106,7 @@ packages=( "nwg-displays" "display monitor configuration app" "off" "nwg-look" "gtk settings app" "off" "pamixer" "pamixer" "off" + "pokemon-colorscripts-git" "terminal colorscripts" "off" "pavucontrol" "pavucontrol" "off" "pipewire-alsa" "pipewire-alsa" "off" "playerctl" "playerctl" "off" @@ -239,6 +240,15 @@ while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do fi done +printf "\n%.0s" {1..1} +printf "\n%s${SKY_BLUE}Attempting to remove locally installed packages${RESET}\n" "${NOTE}" +for file in ags pokemon-colorscripts; do + if [ -f "/usr/local/bin/$file" ]; then + sudo rm "/usr/local/bin/$file" + echo "$file removed." + fi +done + printf "\n%.0s" {1..1} printf "\n%s${SKY_BLUE}Attempting to remove selected directories${RESET}\n" "${NOTE}" remove_directories /tmp/selected_directories.txt From d158b95283f57e0ea99582cbffed3dcefcbdbaa9 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 14:47:24 +0900 Subject: [PATCH 14/25] Added uninstall script --- CHANGELOGS.md | 3 +++ uninstall.sh | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOGS.md b/CHANGELOGS.md index 886ace7..d9dca88 100644 --- a/CHANGELOGS.md +++ b/CHANGELOGS.md @@ -1,5 +1,8 @@ ## CHANGELOGS +## 11 March 2025 +- Added uninstall script + ## 10 March 2025 - Dropped pyprland in favor of hyprland built in tool for a drop down like terminal and Desktop magnifier diff --git a/uninstall.sh b/uninstall.sh index 8e96beb..71c5512 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -254,5 +254,6 @@ printf "\n%s${SKY_BLUE}Attempting to remove selected directories${RESET}\n" "${N remove_directories /tmp/selected_directories.txt printf "\n%.0s" {1..1} -echo "$INFO Uninstall process completed. You can now reboot or logout" +echo -e "$MAGENTA Hyprland and related components have been uninstalled.$RESET" +echo -e "$YELLOW It is recommended to reboot your system now.$RESET" printf "\n%.0s" {1..1} \ No newline at end of file From 817c1d98102e58504f98a5163ef73b2752971e62 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 14:53:39 +0900 Subject: [PATCH 15/25] update readme for uninstall.sh script --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 6e60893..5701992 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,12 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872 > [!NOTE] > Main reason why I have not included an uninstallation script is simple. Some packages maybe already installed on your system by default. If I create an uninstall script with packages that I have set to install, you may end up a unrecoverable system. +### 💥 💥 UNINSTALL SCRIPT / Removal of Config Files +- 11 March 2025, due to popular request, created a guided `uninstall.sh` script. USE this with caution as it may render your system unstable. +- I will not be responsible if your system breaks +- The best still to revert to previous state of your system is via timeshift of snapper + + > [!CAUTION] > Download this script on a directory where you have write permissions. ie. HOME. Or any directory within your home directory. Else script will fail From f4a2591cde0866cd0eb544f714c834032edecf8a Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 18:12:58 +0900 Subject: [PATCH 16/25] removed from uninstall.sh gnome-system-monitor, loupe, xdg-portal-gtk. It seems that gnome is also being uninstalled by this --- uninstall.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index 71c5512..f1256a7 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -86,7 +86,6 @@ packages=( "cliphist" "clipboard manager" "off" "fastfetch" "fastfetch" "off" "ffmpegthumbnailer" "FFmpeg Thumbnailer" "off" - "gnome-system-monitor" "gnome-system-monitor" "off" "grim" "screenshot tool" "off" "hypridle" "hyprland idling agent" "off" "hyprland" "hyprland main package" "off" @@ -97,7 +96,6 @@ packages=( "jq" "json data" "off" "kitty" "kitty-terminal" "off" "kvantum" "QT apps theming" "off" - "loupe" "image viewer" "off" "mousepad" "simple text editor" "off" "mpv" "multi-media player" "off" "mpv-mpris" "mpv-plugin" "off" @@ -128,7 +126,6 @@ packages=( "waybar" "wayland bar" "off" "wl-clipboard" "clipboard manager" "off" "wlogout" "logout menu" "off" - "xdg-desktop-portal-gtk" "gtk file picker" "off" "xdg-desktop-portal-hyprland" "hyprland file picker" "off" "yad" "dialog box" "off" "yt-dlp" "video downloader" "off" From e2e2e477385a48b8b88c9e5a3f5b2da68bd334b6 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 18:19:41 +0900 Subject: [PATCH 17/25] stepped down to pacman -R --- uninstall.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uninstall.sh b/uninstall.sh index f1256a7..f7b7237 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -50,7 +50,7 @@ remove_packages() { while read -r package; do if pacman -Qi "$package" &> /dev/null; then echo "Removing package: $package" - if ! sudo pacman -Rsc --noconfirm "$package"; then + if ! sudo pacman -R --noconfirm "$package"; then echo "$ERROR Failed to remove package: $package" else echo "$OK Successfully removed package: $package" From 3e0c99b82284efa960c290630581cafb965d3349 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 18:27:08 +0900 Subject: [PATCH 18/25] updated install.sh --- uninstall.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index f7b7237..840e94c 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -50,7 +50,7 @@ remove_packages() { while read -r package; do if pacman -Qi "$package" &> /dev/null; then echo "Removing package: $package" - if ! sudo pacman -R --noconfirm "$package"; then + if ! sudo pacman -Rs --noconfirm "$package"; then echo "$ERROR Failed to remove package: $package" else echo "$OK Successfully removed package: $package" @@ -108,9 +108,9 @@ packages=( "pavucontrol" "pavucontrol" "off" "pipewire-alsa" "pipewire-alsa" "off" "playerctl" "playerctl" "off" + "pyprland" "pyprland" "off" "qalculate-gtk" "calculater - QT" "off" "qt5ct" "qt5ct" "off" - "qt6-svg" "qt6-svg" "off" "qt6ct" "qt6ct" "off" "rofi-wayland" "rofi-wayland" "off" "slurp" "screenshot tool" "off" From cde0a7c6f80e3ce26956fa249824719d3e3d69fc Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 18:30:01 +0900 Subject: [PATCH 19/25] hyprland is brought to last package to remove --- uninstall.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index 840e94c..e8130fc 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -87,10 +87,6 @@ packages=( "fastfetch" "fastfetch" "off" "ffmpegthumbnailer" "FFmpeg Thumbnailer" "off" "grim" "screenshot tool" "off" - "hypridle" "hyprland idling agent" "off" - "hyprland" "hyprland main package" "off" - "hyprlock" "lockscreen" "off" - "hyprpolkitagent" "hyprland polkit agent" "off" "imagemagick" "imagemagick" "off" "inxi" "CLI system information" "off" "jq" "json data" "off" @@ -130,6 +126,10 @@ packages=( "yad" "dialog box" "off" "yt-dlp" "video downloader" "off" "xarchiver" "Archive Manager" "off" + "hypridle" "hyprland idling agent" "off" + "hyprlock" "lockscreen" "off" + "hyprpolkitagent" "hyprland polkit agent" "off" + "hyprland" "hyprland main package" "off" ) # Define the list of directories to choose from (with options_command tags) From 79b725deb6357a2c7eedce15720d6158ae2eadac Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 19:32:51 +0900 Subject: [PATCH 20/25] updated uninstall.sh --- uninstall.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index e8130fc..bac04de 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -87,9 +87,7 @@ packages=( "fastfetch" "fastfetch" "off" "ffmpegthumbnailer" "FFmpeg Thumbnailer" "off" "grim" "screenshot tool" "off" - "imagemagick" "imagemagick" "off" - "inxi" "CLI system information" "off" - "jq" "json data" "off" + "imagemagick" "Image manipulation tool" "off" "kitty" "kitty-terminal" "off" "kvantum" "QT apps theming" "off" "mousepad" "simple text editor" "off" From 750d565ee14359832967d7f24437d9a95851ccc6 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 19:52:57 +0900 Subject: [PATCH 21/25] remove unzip from list of packages to unintstall --- uninstall.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/uninstall.sh b/uninstall.sh index bac04de..80e2bb2 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -115,7 +115,6 @@ packages=( "thunar-archive-plugin" "Archive Plugin" "off" "thunar-volman" "Volume Management" "off" "tumbler" "Thumbnail Service" "off" - "unzip" "unzip" "off" "wallust" "color pallete generator" "off" "waybar" "wayland bar" "off" "wl-clipboard" "clipboard manager" "off" From 9b41ac3eebf978492ff0bc049a623fddd0be5879 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 19:59:34 +0900 Subject: [PATCH 22/25] updated uninstall.sh to have a wildcards for removing dirs from ~/.config. This will also remove the backups --- uninstall.sh | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/uninstall.sh b/uninstall.sh index 80e2bb2..6d9fa65 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -65,16 +65,20 @@ remove_packages() { remove_directories() { local selected_dirs_file=$1 while read -r dir; do - if [ -d "$HOME/.config/$dir" ]; then - echo "Removing directory: $HOME/.config/$dir" - if ! rm -rf "$HOME/.config/$dir"; then - echo "$ERROR Failed to remove directory: $HOME/.config/$dir" + pattern="$HOME/.config/$dir*" + # Loop through directories matching the pattern + for dir_to_remove in $pattern; do + if [ -d "$dir_to_remove" ]; then + echo "Removing directory: $dir_to_remove" + if ! rm -rf "$dir_to_remove"; then + echo "$ERROR Failed to remove directory: $dir_to_remove" + else + echo "$OK Successfully removed directory: $dir_to_remove" + fi else - echo "$OK Successfully removed directory: $HOME/.config/$dir" + echo "$INFO Directory ${YELLOW}$dir_to_remove${RESET} not found. Skipping." fi - else - echo "$INFO Directory ${YELLOW}$HOME/.config/$dir${RESET} not found. Skipping." - fi + done done < "$selected_dirs_file" } From 421252264778491a5669e042d5f09659d829b60c Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Tue, 11 Mar 2025 23:30:33 +0900 Subject: [PATCH 23/25] updated uninstall.sh --- install-scripts/01-hypr-pkgs.sh | 1 - uninstall.sh | 1 - 2 files changed, 2 deletions(-) diff --git a/install-scripts/01-hypr-pkgs.sh b/install-scripts/01-hypr-pkgs.sh index 294147f..11b088e 100755 --- a/install-scripts/01-hypr-pkgs.sh +++ b/install-scripts/01-hypr-pkgs.sh @@ -29,7 +29,6 @@ hypr_package=( network-manager-applet pamixer pavucontrol - pipewire-alsa playerctl python-requests python-pyquery diff --git a/uninstall.sh b/uninstall.sh index 6d9fa65..870c7a1 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -104,7 +104,6 @@ packages=( "pamixer" "pamixer" "off" "pokemon-colorscripts-git" "terminal colorscripts" "off" "pavucontrol" "pavucontrol" "off" - "pipewire-alsa" "pipewire-alsa" "off" "playerctl" "playerctl" "off" "pyprland" "pyprland" "off" "qalculate-gtk" "calculater - QT" "off" From 8c0de4d74f06118e37718e75a1cf988ae5e78cea Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Wed, 12 Mar 2025 10:18:57 +0900 Subject: [PATCH 24/25] updated README --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5701992..419d1f0 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,6 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872 - I will not be responsible if your system breaks - The best still to revert to previous state of your system is via timeshift of snapper - > [!CAUTION] > Download this script on a directory where you have write permissions. ie. HOME. Or any directory within your home directory. Else script will fail @@ -90,6 +89,13 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872 #### ✨ Customize the packages to be installed - inside the install-scripts directory, you can edit 00-hypr-pkgs.sh. Care though as the Hyprland Dots may not work properly! +#### 🚩 Switching to SDDM assuming you have GDM installed and running +- if you really want switch to SDDM from GDM, you need to disable the gdm first. +- `sudo systemctl disable gdm.service` then reboot +- after reboot, need to ran the install script via tty. So suggest download the install script first. Then disable gdm. reboot and once logged in, cd into Distro-Hyprland then `./install.sh` and then choose SDDM and SDDM theme in the options. +- NOTE: Distro-Hyprland is Arch-Hyprland, or Fedora-Hyprland .. depends on which install scripts you downloaded. + + #### 💫 SDDM and GTK Themes offered - If you opted to install SDDM theme, here's the [`LINK`](https://codeberg.org/JaKooLit/sddm-sequoia) which is a fork of [`LINK`](https://codeberg.org/minMelody/sddm-sequoia) - If you opted to install GTK Themes, Icons, here's the [`LINK`](https://github.com/JaKooLit/GTK-themes-icons). This also includes Bibata Modern Ice cursor. @@ -107,6 +113,11 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872 ```bash sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/auto-install.sh) ``` +- if you are using like fish or a non-POSIX compliant terminal +```bash +curl -sL https://raw.githubusercontent.com/JaKooLit/Arch-Hyprland/main/auto-install.sh | bash +``` + ## ✨ to use this script - clone this repo (latest commit only) to reduce file size download by using git. Change directory, make executable and run the script From 1e1253d1e6aaa7130186aa0a0fb1e7636c59a1c4 Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Wed, 12 Mar 2025 10:55:11 +0900 Subject: [PATCH 25/25] updated readme --- README.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 419d1f0..53e35bd 100644 --- a/README.md +++ b/README.md @@ -66,15 +66,7 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872 - the wallpaper offered to be downloaded towards the end is from this [`REPO`](https://github.com/JaKooLit/Wallpaper-Bank) > [!IMPORTANT] -> install a backup tool like `snapper` or `timeshift`. and Backup your system before installing hyprland using this script. This script does NOT include uninstallation of packages - -> [!NOTE] -> Main reason why I have not included an uninstallation script is simple. Some packages maybe already installed on your system by default. If I create an uninstall script with packages that I have set to install, you may end up a unrecoverable system. - -### 💥 💥 UNINSTALL SCRIPT / Removal of Config Files -- 11 March 2025, due to popular request, created a guided `uninstall.sh` script. USE this with caution as it may render your system unstable. -- I will not be responsible if your system breaks -- The best still to revert to previous state of your system is via timeshift of snapper +> install a backup tool like `snapper` or `timeshift`. and Backup your system before installing hyprland using this script (HIGHLY RECOMMENDED) > [!CAUTION] > Download this script on a directory where you have write permissions. ie. HOME. Or any directory within your home directory. Else script will fail @@ -104,7 +96,7 @@ https://github.com/user-attachments/assets/49bc12b2-abaf-45de-a21c-67aacd9bb872 - By default, nvidia-dkms will be installed. and only supports GTX 900 and newer. If required to install older driver, edit the nvidia.sh in install-scripts directory > [!IMPORTANT] -> If you want to use nouveau driver, choose N when asked if you have nvidia gpu. This is because the nvidia installer part, it will blacklist nouveau. Hyprland will still be installed but it will skip blacklisting nouveau. +> If you want to use nouveau driver, dont choose nvidia in the option. This is because the nvidia installer part, it will blacklist nouveau. Hyprland will still be installed but it will skip blacklisting nouveau. - After installation, check [`THIS`](https://github.com/JaKooLit/Hyprland-Dots/wiki/Notes_to_remember#--for-nvidia-gpu-users) @@ -129,6 +121,11 @@ chmod +x install.sh ./install.sh ``` +### 💥 💥 UNINSTALL SCRIPT / Removal of Config Files +- 11 March 2025, due to popular request, created a guided `uninstall.sh` script. USE this with caution as it may render your system unstable. +- I will not be responsible if your system breaks +- The best still to revert to previous state of your system is via `timeshift or snapper` + #### ✨ for ZSH and OH-MY-ZSH installation > installer should auto change your default shell to zsh. However, if it does not, do this ```bash