From 046bacd428a6c62502529a0e2af7794873f44ead Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Mon, 4 Dec 2023 13:21:46 +0900 Subject: [PATCH] updated for rofi-wayland --- install-scripts/rofi-wayland.sh | 92 +++++++++++++++++++++++++++++++++ install-scripts/xdph.sh | 5 +- install.sh | 2 + 3 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 install-scripts/rofi-wayland.sh diff --git a/install-scripts/rofi-wayland.sh b/install-scripts/rofi-wayland.sh new file mode 100644 index 0000000..6e84b40 --- /dev/null +++ b/install-scripts/rofi-wayland.sh @@ -0,0 +1,92 @@ +#!/bin/bash + +rofi=( + bison + flex +) + +############## WARNING DO NOT EDIT BEYOND THIS LINE if you dont 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 + +# 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)" +WARN="$(tput setaf 166)[WARN]$(tput sgr0)" +CAT="$(tput setaf 6)[ACTION]$(tput sgr0)" +ORANGE=$(tput setaf 166) +YELLOW=$(tput setaf 3) +RESET=$(tput sgr0) + +# Set the name of the log file to include the current date and time +LOG="install-$(date +%d-%H%M%S)_rofi_wayland.log" + +# uninstall other rofi +printf "${YELLOW} Checking for other rofi packages and remove if any..${RESET}\n" +if sudo dpkg -l | grep -q -w "rofi"; then + printf "${YELLOW} rofi detected.. uninstalling...${RESET}\n" + for rofi in rofi; do + sudo apt-get autoremove -y "rofi" 2>/dev/null | tee -a "$LOG" || true + done +fi + +set -e + +# Function for installing packages +install_package() { + # Checking if package is already installed + if sudo dpkg -l | grep -q -w "$1" ; then + echo -e "${OK} $1 is already installed. Skipping..." + else + # Package not installed + echo -e "${NOTE} Installing $1 ..." + sudo apt-get install -y "$1" 2>&1 | tee -a "$LOG" + # Making sure the package is installed + if sudo dpkg -l | grep -q -w "$1" ; then + echo -e "\e[1A\e[K${OK} $1 was installed." + else + # Something is missing, exiting to review the log + echo -e "\e[1A\e[K${ERROR} $1 failed to install :( , please check the install.log. You may need to install manually! Sorry, I have tried :(" + exit 1 + fi + fi +} + +# Installation of main components +printf "\n%s - Installing rofi-wayland dependencies.... \n" "${NOTE}" + +for PKG1 in "${rofi[@]}"; 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 + +printf "\n\n\n" + +# Clone and build xdg-desktop-portal-hyprland +printf "${NOTE} Installing rofi-wayland...\n" +if git clone https://github.com/lbonn/rofi.git 2>&1 | tee -a "$LOG"; then + cd rofi || exit 1 + meson build -Dxcb=disabled + ninja -C build + if sudo ninja -C build install 2>&1 | tee -a "$LOG"; then + printf "${OK} rofi-wayland installed successfully.\n" + # Return to the previous directory + cd .. + else + echo -e "${ERROR} Installation failed for rofi-wayland." + fi +else + echo -e "${ERROR} Download failed for rofi-wayland." +fi + + + +clear \ No newline at end of file diff --git a/install-scripts/xdph.sh b/install-scripts/xdph.sh index 9600447..6b2c79c 100644 --- a/install-scripts/xdph.sh +++ b/install-scripts/xdph.sh @@ -38,9 +38,8 @@ else echo -e "${ERROR} Download failed for xdg-desktop-portal-hyprland." fi -printf "\n" -printf "\n" -printf "\n" +printf "\n\n\n" + # Clean out other portals printf "${NOTE} Clearing any other xdg-desktop-portal implementations...\n" # Check if packages are installed and uninstall if present diff --git a/install.sh b/install.sh index be15559..74efbd6 100644 --- a/install.sh +++ b/install.sh @@ -159,6 +159,8 @@ execute_script "00-hypr-pkgs.sh" execute_script "fonts.sh" execute_script "swappy.sh" execute_script "swww.sh" +execute_script "rofi-wayland.sh" + if [ "$nvidia" == "Y" ]; then execute_script "nvidia.sh"