diff --git a/CHANGELOGS.md b/CHANGELOGS.md index f6ba853..0f0ef81 100644 --- a/CHANGELOGS.md +++ b/CHANGELOGS.md @@ -1,7 +1,10 @@ ## Changelogs ## 30 Apr 2024 -- Updated hyprland.sh to install v0.34.0 Hyprland +- Updated hyprland.sh to install v0.39.1 Hyprland +- adding hypridle and hyprlock +- dropping swaylock-effects and swayidle +- adjusted to work with current Hyprland-Dots ## 22 Apr 2024 - Change dotfiles to specific version only as Debian and Ubuntu cant keep up with Hyprland development diff --git a/README.md b/README.md index 8a54de8..a1ebb87 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
## 💌 JaKooLit's Debian/Ubuntu Hyprland Install Script 💌 -#### For Debian 13 Trixie and SID and Ubuntu 23.10 Mantic Minotaur or newer +#### For Debian 13 Trixie and SID and Ubuntu 24.04 Noble Numbat ![GitHub Repo stars](https://img.shields.io/github/stars/JaKooLit/Debian-Hyprland?style=for-the-badge&color=cba6f7) ![GitHub last commit](https://img.shields.io/github/last-commit/JaKooLit/Debian-Hyprland?style=for-the-badge&color=b4befe) ![GitHub repo size](https://img.shields.io/github/repo-size/JaKooLit/Debian-Hyprland?style=for-the-badge&color=cba6f7) @@ -9,12 +9,7 @@
### ♨️♨️♨️ ATTENTION ♨️♨️♨️ 30 Apr 2024 -- Due to fast development of Hyprland and most up to date requirement of hyprland, Hyprland version to be installed by this script will be older version. For now, the hyprland version to be installed with this script is v0.34.0 - -### ♨️♨️♨️ ATTENTION ♨️♨️♨️ 22 Apr 2024 -- Pre-configured dotfiles to be downloaded here will be v2.2.6 only -- [`Hyprland-Dots v2.2.6`](https://github.com/JaKooLit/Hyprland-Dots/releases/tag/v2.2.6) -- This is because Debian/Ubuntu are very slow with Hyprland Development +- This script will not work on older build of Ubuntu like Ubuntu 23.10 and older. Due to depencies. If you want to install on Ubuntu 23.10, you can download the version v2.2.3 from the releases > [!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 @@ -42,11 +37,10 @@ sudo nano /etc/apt/sources.list > For Ubuntu 24.04 LTS, no need to edit the /etc/apt/sources.list > [!IMPORTANT] -> UBUNTU USERS: You can use this installer. However, I have only tested on Ubuntu 23.10. Not sure if it works on older ubuntu as Hyprland needs an updated wayland libraries. For sure wont work in any Ubuntu LTS. +> UBUNTU USERS: Will only work on Ubuntu 24.04. See above! > If you are using Gnome already, DO NOT install the SDDM. The GDM works file as well. For some reason, during installation, you will be asked which login manager you wanted to use. But during my test, nothing happened. -> Ubuntu 23.10 dont have cliphist (used as clipboard manager) in their repo yet! And it is not set to build by default. If you want script to install for you, edit `install-scripts/00-hypr-pks.sh` line 15 remove the cliphist under hypr_package . then edit `install.sh` line 175 remove # in `#execute_script "cliphist.sh"` > [!CAUTION] > For Ubuntu with NVIDIA GPU's, make sure to edit the install-scripts/nvidia.sh . Delete all packages in nvidia_pkg except libva-wayland2 and nvidia-vaapi-driver and uncomment/remove # before sudo ubuntu-drivers install. You also need to delete or simply just add # in the lines 37 and 38 echo "echo "## for nvidia" | sudo tee -a... and echo "deb http://deb.debian.org/debian........ @@ -56,15 +50,14 @@ sudo nano /etc/apt/sources.list > If you have GDM already as log-in manager, DO NOT install SDDM > You will encounter issues. See [`Issue 2 - SDDM`](https://github.com/JaKooLit/Debian-Hyprland/issues/2) - #### 📷 Gallery

- +

- - + +

@@ -120,7 +113,7 @@ sudo nano /etc/apt/sources.list > [!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. -#### ✨ to run +# ✨ to run or Use this script > clone this repo (latest commit only) by using git. Change directory, make executable and run the script ```bash git clone --depth=1 https://github.com/JaKooLit/Debian-Hyprland.git ~/Debian-Hyprland @@ -139,12 +132,10 @@ zsh source ~/.zshrc ``` - reboot or logout -- by default agnoster theme is installed. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes) +- by default `xiong-chiamiov-plus` theme is installed. You can find more themes from this [`OH-MY-ZSH-THEMES`](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes) - to change the theme, edit ~/.zshrc ZSH_THEME="desired theme" #### ✨ TO DO once installation done and dotfiles copied -- ~~if you opted to install gtk themes, to apply the theme and icon, press the dark/light button (beside the padlock). To apply Bibata modern ice cursor, launch nwg-look (GTK Settings) through rofi.~~ Hyprland-Dots v2.1.18, initial boot file will attempt to apply GTK themes,cursor, and icons. You can tweak more using nwg-look (GTK-Settings) utility - - SUPER H for HINT or click on the waybar HINT! Button - Head over to [FAQ](https://github.com/JaKooLit/Hyprland-Dots/wiki/FAQ) and [TIPS](https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS) @@ -156,7 +147,10 @@ source ~/.zshrc - nwg-look [`LINK`](https://github.com/nwg-piotr/nwg-look) - Asus ROG asusctl [`LINK`](https://gitlab.com/asus-linux/asusctl) and superfxctl [`LINK`](https://gitlab.com/asus-linux/supergfxctl) - swww [`LINK`](https://github.com/Horus645/swww) -- swaylock-effects [`LINK`](https://github.com/mortie/swaylock-effects) +- hyprlock [`LINK`](https://github.com/hyprwm/hyprlock) +- hypridle [`LINK`](https://github.com/hyprwm/hypridle) +- hyprlang [`LINK`](https://github.com/hyprwm/hyprlang) +- hyprcursor [`LINK`](https://github.com/hyprwm/hyprcursor) - swappy [`LINK`](https://github.com/jtheoof/swappy) - xdg-desktop-portal-hyprland [`LINK`](https://github.com/hyprwm/xdg-desktop-portal-hyprland) - rofi-wayland [`LINK`](https://github.com/lbonn/rofi) @@ -167,6 +161,9 @@ source ~/.zshrc #### Most common question I got is, Hey Ja, Why the heck it is taking long time to install? Other distro like Arch its only a minute or two. Why here takes like forever?!?!?! - Well, most of the core packages are downloaded and Build and compiled from SOURCE. There are no pre-built binary (yet) for Debian and Ubuntu. Unlike Other distros, they already have prepacked binary that can just download and install. +> [!NOTE] +> This script does not setup audio. Kindly set up. If you have not, I recommend pipewire. `sudo apt install -y pipewire` + #### ❗ some known issues on this Installer - some users reported that they have to install some packages. It is in the install-scripts/force-install.sh - At this time the packages force to install are the following `imagemagick` @@ -182,11 +179,10 @@ source ~/.zshrc - for the Pre-configured Hyprland dots / configuration, submit issue [`here`](https://github.com/JaKooLit/Hyprland-Dots/issues) #### 🔧 Proper way to re-installing a particular script from install-scripts folder -- CD into Fedora-Hyprland Folder and then ran the below command. +- CD into Debian-Hyprland Folder and then ran the below command. - i.e. `./install-scripts/gtk-themes` - For reinstall GTK Themes. #### 🛣️ Roadmap: -- ~~[ ] Install zsh and oh-my-zsh without necessary steps above~~ DONE - [ ] possibly adding gruvbox themes, cursors, icons #### ❗ some known issues for nvidia @@ -204,7 +200,7 @@ log into your account - more info from the hyprland wiki [`Hyprland Wiki Link`](https://wiki.hyprland.org/FAQ/#my-external-monitor-is-blank--doesnt-render--receives-no-signal-laptop) -- [ ] Does not work in Ubuntu 23.04 +- [ ] Does not work in Ubuntu 23.10 and older - [ ] sddm blackscreen when log-out - [ ] Installing SDDM if or any other Login Manager installed. See [`Issue 2 - SDDM`](https://github.com/JaKooLit/Debian-Hyprland/issues/2) - [ ] network is down or become unmanaged [`This`](https://askubuntu.com/questions/71159/network-manager-says-device-not-managed) might help diff --git a/install-scripts/00-hypr-pkgs.sh b/install-scripts/00-hypr-pkgs.sh index ce7e923..b7554d2 100755 --- a/install-scripts/00-hypr-pkgs.sh +++ b/install-scripts/00-hypr-pkgs.sh @@ -51,7 +51,6 @@ hypr_package_2=( mpv-mpris nvtop pamixer - swayidle vim ) diff --git a/install-scripts/dotfiles.sh b/install-scripts/dotfiles.sh index 5630cb0..bf492fb 100755 --- a/install-scripts/dotfiles.sh +++ b/install-scripts/dotfiles.sh @@ -1,51 +1,86 @@ #!/bin/bash # 💫 https://github.com/JaKooLit 💫 # -# Hyprland-Dots to download a specific release # - -# Define the specific release version to download -specific_version="v2.2.6" +# Hyprland-Dots to download from Releases # +if [[ $USE_PRESET = [Yy] ]]; then + source ./preset.sh +fi ## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" -printf "${NOTE} Downloading / Checking for existing Hyprland-Dots-${specific_version}.tar.gz...\n" +printf "${NOTE} Downloading / Checking for existing Hyprland-Dots.tar.gz...\n" -# Check if the specific release tarball exists -if [ -f "Hyprland-Dots-${specific_version}.tar.gz" ]; then - printf "${NOTE} Hyprland-Dots-${specific_version}.tar.gz found.\n" - echo -e "${OK} Hyprland-Dots-${specific_version}.tar.gz is already downloaded." - exit 0 +# Check if Hyprland-Dots.tar.gz exists +if [ -f Hyprland-Dots.tar.gz ]; then + printf "${NOTE} Hyprland-Dots.tar.gz found.\n" + + # Get the version from the existing tarball filename + existing_version=$(echo Hyprland-Dots.tar.gz | grep -oP 'v\d+\.\d+\.\d+' | sed 's/v//') + + # Fetch the tag_name for the latest release using the GitHub API + latest_version=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4 | sed 's/v//') + + # Check if versions match + if [ "$existing_version" = "$latest_version" ]; then + echo -e "${OK} Hyprland-Dots.tar.gz is up-to-date with the latest release ($latest_version)." + + # Sleep for 10 seconds before exiting + printf "${NOTE} No update found. Sleeping for 10 seconds...\n" + sleep 10 + exit 0 + else + echo -e "${WARN} Hyprland-Dots.tar.gz is outdated (Existing version: $existing_version, Latest version: $latest_version)." + if [[ -z $upgrade_choice ]]; then + read -p "Do you want to upgrade to the latest version? (y/n): " upgrade_choice + fi + if [ "$upgrade_choice" = "y" ]; then + echo -e "${NOTE} Proceeding to download the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + + # Delete existing directories starting with JaKooLit-Hyprland-Dots + find . -type d -name 'JaKooLit-Hyprland-Dots*' -exec rm -rf {} + + rm -f Hyprland-Dots.tar.gz + printf "${WARN} Removed existing Hyprland-Dots.tar.gz.\n" + else + echo -e "${NOTE} User chose not to upgrade. Exiting..." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + exit 0 + fi + fi fi -printf "${NOTE} Downloading the Hyprland-Dots-${specific_version} source code release...\n" +printf "${NOTE} Downloading the latest Hyprland source code release...\n" -# Fetch the tag name for the specific release using the GitHub API -release_info=$(curl -s "https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/tags/${specific_version}") -if [ -z "$release_info" ]; then - echo -e "${ERROR} Unable to fetch information for release ${specific_version}." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" +# Fetch the tag name for the latest release using the GitHub API +latest_tag=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tag_name" | cut -d '"' -f 4) + +# Check if the tag is obtained successfully +if [ -z "$latest_tag" ]; then + echo -e "${ERROR} Unable to fetch the latest tag information." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" exit 1 fi -# Get the tarball URL for the specific release -tarball_url=$(echo "$release_info" | grep "tarball_url" | cut -d '"' -f 4) +# Fetch the tarball URL for the latest release using the GitHub API +latest_tarball_url=$(curl -s https://api.github.com/repos/JaKooLit/Hyprland-Dots/releases/latest | grep "tarball_url" | cut -d '"' -f 4) # Check if the URL is obtained successfully -if [ -z "$tarball_url" ]; then - echo -e "${ERROR} Unable to fetch the tarball URL for release ${specific_version}." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" +if [ -z "$latest_tarball_url" ]; then + echo -e "${ERROR} Unable to fetch the tarball URL for the latest release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" exit 1 fi -# Download the specific release source code tarball to the current directory -if curl -L "$tarball_url" -o "Hyprland-Dots-${specific_version}.tar.gz"; then - # Extract the contents of the tarball - tar -xzf "Hyprland-Dots-${specific_version}.tar.gz" || exit 1 +# Get the filename from the URL and include the tag name in the file name +file_name="Hyprland-Dots-${latest_tag}.tar.gz" - # Delete existing Hyprland-Dots +# Download the latest release source code tarball to the current directory +if curl -L "$latest_tarball_url" -o "$file_name"; then + # Extract the contents of the tarball + tar -xzf "$file_name" || exit 1 + + # delete existing Hyprland-Dots rm -rf JaKooLit-Hyprland-Dots # Identify the extracted directory - extracted_directory=$(tar -tf "Hyprland-Dots-${specific_version}.tar.gz" | grep -o '^[^/]\+' | uniq) + extracted_directory=$(tar -tf "$file_name" | grep -o '^[^/]\+' | uniq) # Rename the extracted directory to JaKooLit-Hyprland-Dots mv "$extracted_directory" JaKooLit-Hyprland-Dots || exit 1 @@ -56,9 +91,9 @@ if curl -L "$tarball_url" -o "Hyprland-Dots-${specific_version}.tar.gz"; then chmod +x copy.sh ./copy.sh - echo -e "${OK} Hyprland-Dots-${specific_version} release downloaded, extracted, and processed successfully. Check JaKooLit-Hyprland-Dots folder for more detailed install logs" 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${OK} Latest Dotfiles release downloaded, extracted, and processed successfully. Check JaKooLit-Hyprland-Dots folder for more detailed install logs" 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" else - echo -e "${ERROR} Failed to download Hyprland-Dots-${specific_version} release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" + echo -e "${ERROR} Failed to download the latest Dotfiles release." 2>&1 | tee -a "../Install-Logs/install-$(date +'%d-%H%M%S')_dotfiles.log" exit 1 fi diff --git a/install-scripts/hyprcursor.sh b/install-scripts/hyprcursor.sh new file mode 100755 index 0000000..b9857f8 --- /dev/null +++ b/install-scripts/hyprcursor.sh @@ -0,0 +1,61 @@ +#!/bin/bash +# 💫 https://github.com/JaKooLit 💫 # +# hyprcursor # + +cursor=( +libzip-dev +librsvg2-dev +) + +## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" + +# Set the name of the log file to include the current date and time +LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprcursor.log" +MLOG="install-$(date +%d-%H%M%S)_hyprcursor.log" + +# Installation of dependencies +printf "\n%s - Installing hyprcursor dependencies.... \n" "${NOTE}" + +for PKG1 in "${cursor[@]}"; do + install_package "$PKG1" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log" + exit 1 + fi +done + +# Check if hyprcursor folder exists and remove it +if [ -d "hyprcursor" ]; then + printf "${NOTE} Removing existing hyprcursor folder...\n" + rm -rf "hyprcursor" +fi + +# Clone and build +printf "${NOTE} Installing hyprcursor...\n" +if git clone https://github.com/hyprwm/hyprcursor.git; then + cd hyprcursor || exit 1 + cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build + cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` + if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then + printf "${OK} hyprcursor installed successfully.\n" 2>&1 | tee -a "$MLOG" + else + echo -e "${ERROR} Installation failed for hyprcursor." 2>&1 | tee -a "$MLOG" + fi + #moving the addional logs to Install-Logs directory + mv $MLOG ../Install-Logs/ || true + cd .. +else + echo -e "${ERROR} Download failed for hyprcursor." 2>&1 | tee -a "$LOG" +fi + +clear + + diff --git a/install-scripts/hypridle.sh b/install-scripts/hypridle.sh new file mode 100755 index 0000000..b033120 --- /dev/null +++ b/install-scripts/hypridle.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# 💫 https://github.com/JaKooLit 💫 # +# hypidle # + +idle=( +libsdbus-c++-dev +) + +## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" + +# Set the name of the log file to include the current date and time +LOG="Install-Logs/install-$(date +%d-%H%M%S)_hypridle.log" +MLOG="install-$(date +%d-%H%M%S)_hypridle.log" + +# Installation of dependencies +printf "\n%s - Installing hypridle dependencies.... \n" "${NOTE}" + +for PKG1 in "${idle[@]}"; do + install_package "$PKG1" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log" + exit 1 + fi +done + +# Check if hypridle folder exists and remove it +if [ -d "hypridle" ]; then + printf "${NOTE} Removing existing hypridle folder...\n" + rm -rf "hypridle" +fi + +# Clone and build +printf "${NOTE} Installing hypridle...\n" +if git clone https://github.com/hyprwm/hypridle.git; then + cd hypridle || exit 1 + cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build + cmake --build ./build --config Release --target hypridle -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` + if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then + printf "${OK} hypridle installed successfully.\n" 2>&1 | tee -a "$MLOG" + else + echo -e "${ERROR} Installation failed for hypridle." 2>&1 | tee -a "$MLOG" + fi + #moving the addional logs to Install-Logs directory + mv $MLOG ../Install-Logs/ || true + cd .. +else + echo -e "${ERROR} Download failed for hypridle." 2>&1 | tee -a "$LOG" +fi + +clear + + diff --git a/install-scripts/hyprland.sh b/install-scripts/hyprland.sh index 0eec6be..e65fda5 100755 --- a/install-scripts/hyprland.sh +++ b/install-scripts/hyprland.sh @@ -25,7 +25,7 @@ if [ -d "Hyprland" ]; then rm -rf "Hyprland" 2>&1 | tee -a "$LOG" fi -if git clone --recursive -b v0.34.0 "https://github.com/hyprwm/Hyprland"; then +if git clone --recursive -b v0.39.1 "https://github.com/hyprwm/Hyprland"; then cd "Hyprland" || exit 1 make all if sudo make install 2>&1 | tee -a "$MLOG"; then diff --git a/install-scripts/hyprlock.sh b/install-scripts/hyprlock.sh new file mode 100755 index 0000000..411e122 --- /dev/null +++ b/install-scripts/hyprlock.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# 💫 https://github.com/JaKooLit 💫 # +# hyprlock # + +lock=( +libmagic-dev +) + +## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## +# Determine the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Change the working directory to the parent directory of the script +PARENT_DIR="$SCRIPT_DIR/.." +cd "$PARENT_DIR" || exit 1 + +source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" + +# Set the name of the log file to include the current date and time +LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprlock.log" +MLOG="install-$(date +%d-%H%M%S)_hyprlock.log" + +# Installation of dependencies +printf "\n%s - Installing hyprlock dependencies.... \n" "${NOTE}" + +for PKG1 in "${lock[@]}"; do + install_package "$PKG1" 2>&1 | tee -a "$LOG" + if [ $? -ne 0 ]; then + echo -e "\e[1A\e[K${ERROR} - $PKG1 install had failed, please check the install.log" + exit 1 + fi +done + +# Check if hyprlidle folder exists and remove it +if [ -d "hyprlock" ]; then + printf "${NOTE} Removing existing hyprlock folder...\n" + rm -rf "hyprlock" +fi + +# Clone and build hyprlock +printf "${NOTE} Installing hyprlock...\n" +if git clone https://github.com/hyprwm/hyprlock.git; then + cd hyprlock || exit 1 + cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -S . -B ./build + cmake --build ./build --config Release --target hyprlock -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF` + if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then + printf "${OK} hyprlock installed successfully.\n" 2>&1 | tee -a "$MLOG" + else + echo -e "${ERROR} Installation failed for hyprlock." 2>&1 | tee -a "$MLOG" + fi + #moving the addional logs to Install-Logs directory + mv $MLOG ../Install-Logs/ || true + cd .. +else + echo -e "${ERROR} Download failed for hyprlock." 2>&1 | tee -a "$LOG" +fi + +clear + diff --git a/install-scripts/swaylock-effects.sh b/install-scripts/swaylock-effects.sh deleted file mode 100755 index ed2e99e..0000000 --- a/install-scripts/swaylock-effects.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# 💫 https://github.com/JaKooLit 💫 # -# Swaylock Effects # - -## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ## -# Determine the directory where the script is located -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Change the working directory to the parent directory of the script -PARENT_DIR="$SCRIPT_DIR/.." -cd "$PARENT_DIR" || exit 1 - -source "$(dirname "$(readlink -f "$0")")/Global_functions.sh" - -# Set the name of the log file to include the current date and time -LOG="Install-Logs/install-$(date +%d-%H%M%S)_swaylock-effects2.log" -MLOG="install-$(date +%d-%H%M%S)_swaylock-effects.log" - -printf "${NOTE} Installing swaylock-effects\n" -# Check if swaylock-effects folder exists -if [ -d "swaylock-effects" ]; then - printf "${NOTE} swaylock-effects folder exists. Pulling latest changes...\n" - cd swaylock-effects || exit 1 - git pull origin master 2>&1 | tee -a "$MLOG" -else - printf "${NOTE} Cloning swaylock-effects repository...\n" - if git clone https://github.com/jirutka/swaylock-effects.git; then - cd swaylock-effects || exit 1 - else - echo -e "${ERROR} Download failed for swaylock-effects" 2>&1 | tee -a "$LOG" - exit 1 - fi -fi - -# Proceed with the installation steps -meson build -ninja -C build -sudo ninja -C build install 2>&1 | tee -a "$MLOG" - -# Moving logs into main Install-Logs -mv "$MLOG" ../Install-Logs/ || true -cd - || exit 1 - -clear \ No newline at end of file diff --git a/install-scripts/swww.sh b/install-scripts/swww.sh index fcf3ba2..2dfdf83 100755 --- a/install-scripts/swww.sh +++ b/install-scripts/swww.sh @@ -49,21 +49,44 @@ else fi fi +# install new rust +# Define environment variables for non-interactive installation +export RUSTUP_INIT_SKIP_PATH_CHECK=yes +export RUSTUP_INIT_SKIP_CONFIRMATION=yes + +# Download and execute the Rust installer script, automatically answering "yes" to all prompts +curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path 2>&1 | tee -a "$LOG" || true + # Proceed with the rest of the installation steps source "$HOME/.cargo/env" || true cargo build --release 2>&1 | tee -a "$MLOG" + +# Checking if swww is previously installed and delete before copying +file1="/usr/bin/swww" +file2="/usr/bin/swww-daemon" + +# Check if file1 exists and delete if so +if [ -f "$file1" ]; then + sudo rm -r "$file1" +fi + +# Check if file2 exists and delete if so +if [ -f "$file2" ]; then + sudo rm -r "$file2" +fi + # Copy binaries to /usr/bin/ -sudo cp target/release/swww /usr/bin/ 2>&1 | tee -a "$MLOG" -sudo cp target/release/swww-daemon /usr/bin/ 2>&1 | tee -a "$MLOG" +sudo cp -r target/release/swww /usr/bin/ 2>&1 | tee -a "$MLOG" +sudo cp -r target/release/swww-daemon /usr/bin/ 2>&1 | tee -a "$MLOG" # Copy bash completions -sudo mkdir -p /usr/share/bash-completion/completions 2>&1 | tee -a "$MLOG" -sudo cp completions/swww.bash /usr/share/bash-completion/completions/swww 2>&1 | tee -a "$MLOG" +sudo mkdir -p /usr/share/bash-completion/completions 2>&1 | tee -a "$MLOG" +sudo cp -r completions/swww.bash /usr/share/bash-completion/completions/swww 2>&1 | tee -a "$MLOG" # Copy zsh completions -sudo mkdir -p /usr/share/zsh/site-functions 2>&1 | tee -a "$MLOG" -sudo cp completions/_swww /usr/share/zsh/site-functions/_swww 2>&1 | tee -a "$MLOG" +sudo mkdir -p /usr/share/zsh/site-functions 2>&1 | tee -a "$MLOG" +sudo cp -r completions/_swww /usr/share/zsh/site-functions/_swww 2>&1 | tee -a "$MLOG" # Moving logs into main Install-Logs mv "$MLOG" ../Install-Logs/ || true diff --git a/install.sh b/install.sh index 95eb670..d609982 100755 --- a/install.sh +++ b/install.sh @@ -25,18 +25,6 @@ echo echo "$(tput setaf 3)NOTE: If you are installing on a VM, ensure to enable 3D acceleration else Hyprland wont start! $(tput sgr0)" echo -printf "\n%.0s" {1..5} -echo "$(tput bold)$(tput setaf 3)ATTENTION!!!! VERY IMPORTANT NOTICE!!!! $(tput sgr0)" -echo "$(tput bold)$(tput setaf 7)Due to fast development of Hyprland, Hyprland to be install here would be old version $(tput sgr0)" -echo "$(tput bold)$(tput setaf 7)For now, the Hyprland version to be installed with this script will be v0.34.0$(tput sgr0)" -printf "\n%.0s" {1..3} - -printf "\n%.0s" {1..5} -echo "$(tput bold)$(tput setaf 3)ATTENTION!!!! One MORE IMPORTANT NOTICE!!!! $(tput sgr0)" -echo "$(tput bold)$(tput setaf 7)Dotfiles version to be downloaded here will be specific to v2.2.6 only $(tput sgr0)" -echo "$(tput bold)$(tput setaf 7)Debian and Ubuntu Cant keep up with Hyprland development. $(tput sgr0)" -printf "\n%.0s" {1..3} - read -p "$(tput setaf 6)Would you like to proceed? (y/n): $(tput sgr0)" proceed if [ "$proceed" != "y" ]; then @@ -84,7 +72,6 @@ nvidia="" nwg="" rog="" sddm="" -swaylock="" thunar="" xdph="" zsh="" @@ -155,13 +142,11 @@ ask_yes_no "-Install XDG-DESKTOP-PORTAL-HYPRLAND? (For proper Screen Share ie OB printf "\n" ask_yes_no "-Install zsh & oh-my-zsh plus (OPTIONAL) pokemon-colorscripts for tty?" zsh printf "\n" -ask_yes_no "-Install swaylock-effects? (recommended - for screen locks)" swaylock -printf "\n" ask_yes_no "-Install nwg-look? (a GTK Theming app - lxappearance-like) WARN! This Package Takes long time to build!" nwg printf "\n" ask_yes_no "-Installing on Asus ROG Laptops?" rog printf "\n" -ask_yes_no "-Do you want to download and install pre-configured Hyprland-dotfiles v2.2.6?" dots +ask_yes_no "-Do you want to download and install pre-configured Hyprland-dotfiles?" dots printf "\n" # Ensuring all in the scripts folder are made executable @@ -179,6 +164,9 @@ execute_script "rofi-wayland.sh" execute_script "pywal.sh" execute_script "force-install.sh" execute_script "hyprlang.sh" +execute_script "hyprlock.sh" +execute_script "hyprcursor.sh" +execute_script "hypridle.sh" #execute_script "cliphist.sh" @@ -214,10 +202,6 @@ if [ "$zsh" == "Y" ]; then execute_script "zsh.sh" fi -if [ "$swaylock" == "Y" ]; then - execute_script "swaylock-effects.sh" -fi - if [ "$nwg" == "Y" ]; then execute_script "nwg-look.sh" fi