diff --git a/README.md b/README.md index de06fd7..16f4100 100644 --- a/README.md +++ b/README.md @@ -111,8 +111,9 @@ source ~/.zshrc - swaylock-effects [`LINK`](https://github.com/mortie/swaylock-effects) - 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) -- a.) to update these package, in your installation folder, you can move these folders, `Hyprland` `nwg-look` `swaylock-effects` `swappy` `swww` `asusctl` `supergfxctl`, as appropriate or download manually, cd into it, update/install +- a.) to update these package, in your installation folder, you can move these folders, `Hyprland` `nwg-look` `swaylock-effects` `swappy` `swww` `rofi` `asusctl` `supergfxctl`, as appropriate or download manually, cd into it, update/install - b.) to update Hyprland and xdg-desktop-portal-hyprland ``` bash @@ -137,6 +138,13 @@ meson build ninja -C build sudo ninja -C build install ``` +- e.) for rofi +``` bash +git pull +meson setup build +ninja -C build +sudo ninja -C build install +``` ### 🛣️ Roadmap: - [ ] Install zsh and oh-my-zsh without necessary steps above diff --git a/install-scripts/00-dependencies.sh b/install-scripts/00-dependencies.sh index 565229e..9f5c589 100644 --- a/install-scripts/00-dependencies.sh +++ b/install-scripts/00-dependencies.sh @@ -49,6 +49,7 @@ dependencies=( libpango1.0-dev libpipewire-0.3-dev libseat-dev + libstartup-notification0-dev libswresample-dev libsystemd-dev libtiff-dev @@ -60,12 +61,15 @@ dependencies=( libwayland-dev libwebp-dev libxcb-composite0-dev + libxcb-cursor-dev libxcb-dri3-dev libxcb-ewmh-dev libxcb-icccm4-dev libxcb-present-dev libxcb-render-util0-dev libxcb-res0-dev + libxcb-util-dev + libxcb-xinerama0-dev libxcb-xinput-dev libxcb-xkb-dev libxkbcommon-dev diff --git a/install-scripts/00-hypr-pkgs.sh b/install-scripts/00-hypr-pkgs.sh index 9e4b52c..ac784d3 100644 --- a/install-scripts/00-hypr-pkgs.sh +++ b/install-scripts/00-hypr-pkgs.sh @@ -31,7 +31,6 @@ hypr_package=( qt5-style-kvantum qt5-style-kvantum-themes qt6-svg - rofi slurp waybar wget diff --git a/install-scripts/rofi-wayland.sh b/install-scripts/rofi-wayland.sh new file mode 100644 index 0000000..e1e4417 --- /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 setup build & + 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"