mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2025-12-21 10:20:12 +01:00
Compare commits
No commits in common. "ade0c43bba45d216aec0ab5272621943f8030007" and "7df55eb19344128a903303e5819fd339fa003f52" have entirely different histories.
ade0c43bba
...
7df55eb193
@ -67,10 +67,10 @@ force=(
|
||||
)
|
||||
|
||||
# List of packages to uninstall as it conflicts with swaync or causing swaync to not function properly
|
||||
# NOTE: rofi is no longer removed here because this branch uses the Debian Wayland-capable rofi package by default.
|
||||
uninstall=(
|
||||
dunst
|
||||
mako
|
||||
rofi
|
||||
cargo
|
||||
)
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ packages=(
|
||||
kitty
|
||||
)
|
||||
|
||||
# Local packages that should be available in PATH (previously assumed in /usr/local/bin)
|
||||
# Local packages that should be in /usr/local/bin/
|
||||
local_pkgs_installed=(
|
||||
hyprland
|
||||
rofi
|
||||
@ -61,9 +61,9 @@ for pkg in "${packages[@]}"; do
|
||||
fi
|
||||
done
|
||||
|
||||
# Check for local packages in PATH (hyprland, rofi, etc.)
|
||||
# Check for local packages
|
||||
for pkg1 in "${local_pkgs_installed[@]}"; do
|
||||
if ! command -v "$pkg1" >/dev/null 2>&1; then
|
||||
if ! [ -f "/usr/local/bin/$pkg1" ]; then
|
||||
local_missing+=("$pkg1")
|
||||
fi
|
||||
done
|
||||
@ -88,9 +88,9 @@ else
|
||||
fi
|
||||
|
||||
if [ ${#local_missing[@]} -ne 0 ]; then
|
||||
echo "${WARN} The following local packages are missing from PATH and will be logged:"
|
||||
echo "${WARN} The following local packages are missing from /usr/local/bin/ and will be logged:"
|
||||
for pkg1 in "${local_missing[@]}"; do
|
||||
echo "$pkg1 is not installed. can't find it in PATH"
|
||||
echo "$pkg1 is not installed. can't find it in /usr/local/bin/"
|
||||
echo "$pkg1" >> "$LOG" # Log the missing local package to the file
|
||||
done
|
||||
fi
|
||||
|
||||
@ -31,15 +31,36 @@ fi
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_aquamarine.log"
|
||||
MLOG="install-$(date +%d-%H%M%S)_aquamarine.log"
|
||||
|
||||
# For this branch, prefer Debian packages for aquamarine by default
|
||||
printf "\n%s - Installing ${YELLOW}aquamarine (Debian package)${RESET} .... \n" "${INFO}"
|
||||
# Installation of dependencies
|
||||
printf "\n%s - Installing ${YELLOW}aquamarine dependencies${RESET} .... \n" "${INFO}"
|
||||
|
||||
# Check if aquamarinedirectory exists and remove it
|
||||
if [ -d "aquamarine" ]; then
|
||||
rm -rf "aquamarine"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
printf "${INFO} Installing ${YELLOW}aquamarine $tag${RESET} ...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/aquamarine.git; then
|
||||
cd aquamarine || 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 [ $DO_INSTALL -eq 1 ]; then
|
||||
install_package "libaquamarine8" 2>&1 | tee -a "$LOG"
|
||||
install_package "libaquamarine-dev" 2>&1 | tee -a "$LOG"
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}aquamarine $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Would install libaquamarine8 and libaquamarine-dev from APT."
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
fi
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Skipping installation of aquamarine $tag."
|
||||
fi
|
||||
#moving the addional logs to Install-Logs directory
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}aquamarine $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
@ -26,16 +26,41 @@ fi
|
||||
|
||||
# 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"
|
||||
|
||||
# For this branch, prefer Debian packages for hyprcursor by default
|
||||
printf "\n%s - Installing hyprcursor (Debian packages).... \n" "${NOTE}"
|
||||
# Installation of dependencies
|
||||
printf "\n%s - Installing hyprcursor dependencies.... \n" "${NOTE}"
|
||||
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
# runtime and dev package
|
||||
install_package "libhyprcursor0" 2>&1 | tee -a "$LOG"
|
||||
install_package "libhyprcursor-dev" 2>&1 | tee -a "$LOG"
|
||||
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 Package installation failed, Please check the installation logs"
|
||||
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 --recursive -b $tag 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 "${NOTE} DRY RUN: Would install libhyprcursor0 and libhyprcursor-dev from APT."
|
||||
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
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
@ -34,15 +34,45 @@ fi
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprgraphics.log"
|
||||
MLOG="install-$(date +%d-%H%M%S)_hyprgraphics2.log"
|
||||
|
||||
# For this branch, prefer Debian packages for hyprgraphics by default
|
||||
printf "\n%s - Installing ${YELLOW}hyprgraphics (Debian packages)${RESET} .... \n" "${INFO}"
|
||||
# Installation of dependencies
|
||||
printf "\n%s - Installing ${YELLOW}hyprgraphics dependencies${RESET} .... \n" "${INFO}"
|
||||
|
||||
for PKG1 in "${hyprgraphics[@]}"; do
|
||||
re_install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Check if hyprgraphics directory exists and remove it
|
||||
if [ -d "hyprgraphics" ]; then
|
||||
rm -rf "hyprgraphics"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
printf "${INFO} Installing ${YELLOW}hyprgraphics $tag${RESET} ...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprgraphics.git; then
|
||||
cd hyprgraphics || 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 hyprgraphics -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
install_package "libhyprgraphics2" 2>&1 | tee -a "$LOG"
|
||||
install_package "libhyprgraphics-dev" 2>&1 | tee -a "$LOG"
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}hyprgraphics $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Would install libhyprgraphics2 and libhyprgraphics-dev from APT."
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
fi
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Skipping installation of hyprgraphics $tag."
|
||||
fi
|
||||
#moving the addional logs to Install-Logs directory
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}hyprgraphics $graphics${RESET}" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
@ -1,91 +0,0 @@
|
||||
#!/bin/bash
|
||||
# 💫 https://github.com/JaKooLit 💫 #
|
||||
# Hypr Ecosystem #
|
||||
# hyprland-qtutils #
|
||||
|
||||
qtutils_dep=(
|
||||
qt6-base-dev
|
||||
qt6-base-private-dev
|
||||
qt6-declarative-dev
|
||||
qt6-wayland-dev
|
||||
qt6-wayland-private-dev
|
||||
qt6-tools-dev
|
||||
qt6-tools-dev-tools
|
||||
qml6-module-qtcore
|
||||
qml6-module-qtquick
|
||||
qml6-module-qtquick-controls
|
||||
qml6-module-qtquick-dialogs
|
||||
qml6-module-qtquick-layouts
|
||||
qml6-module-qtquick-window
|
||||
)
|
||||
|
||||
# specific branch or release (default to main for latest utils)
|
||||
tag="main"
|
||||
# Allow environment override
|
||||
if [ -n "${HYPRLAND_QTUTILS_TAG:-}" ]; then tag="$HYPRLAND_QTUTILS_TAG"; fi
|
||||
|
||||
# Dry-run support
|
||||
DO_INSTALL=1
|
||||
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||
DO_INSTALL=0
|
||||
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||
fi
|
||||
|
||||
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||
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" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||
|
||||
# Source the global functions script
|
||||
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||
echo "Failed to source Global_functions.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland-qtutils.log"
|
||||
MLOG="install-$(date +%d-%H%M%S)_hyprland-qtutils2.log"
|
||||
|
||||
# Installation of dependencies
|
||||
printf "\n%s - Installing ${YELLOW}hyprland-qtutils dependencies${RESET} .... \n" "${INFO}"
|
||||
|
||||
for PKG1 in "${qtutils_dep[@]}"; do
|
||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "\e[1A\e[K${ERROR} - ${YELLOW}$PKG1${RESET} Package installation failed, Please check the installation logs"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Check if hyprland-qtutils directory exists and remove it
|
||||
if [ -d "hyprland-qtutils" ]; then
|
||||
rm -rf "hyprland-qtutils"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
printf "${INFO} Installing ${YELLOW}hyprland-qtutils $tag${RESET} ...\n"
|
||||
if git clone --recursive -b "$tag" https://github.com/hyprwm/hyprland-qtutils.git; then
|
||||
cd hyprland-qtutils || 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 [ $DO_INSTALL -eq 1 ]; then
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}hyprland-qtutils $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}hyprland-qtutils $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
fi
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Skipping installation of hyprland-qtutils $tag."
|
||||
fi
|
||||
#moving the additional logs to Install-Logs directory
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}hyprland-qtutils $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
@ -3,8 +3,7 @@
|
||||
# Main Hyprland Package#
|
||||
|
||||
#specific branch or release
|
||||
# Default source tag aligned with Debian sid package (0.51.1)
|
||||
tag="v0.51.1"
|
||||
tag="v0.52.1"
|
||||
# Allow environment override
|
||||
if [ -n "${HYPRLAND_TAG:-}" ]; then tag="$HYPRLAND_TAG"; fi
|
||||
|
||||
@ -15,10 +14,6 @@ if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]
|
||||
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||
fi
|
||||
|
||||
# By default, install Hyprland from Debian packages.
|
||||
# Set HYPRLAND_FROM_SOURCE=1 if you explicitly want to build from source.
|
||||
HYPRLAND_FROM_SOURCE=${HYPRLAND_FROM_SOURCE:-0}
|
||||
|
||||
hyprland=(
|
||||
clang
|
||||
llvm
|
||||
@ -47,25 +42,8 @@ fi
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland.log"
|
||||
MLOG="install-$(date +%d-%H%M%S)_hyprland2.log"
|
||||
|
||||
# If not explicitly told to build from source, install Hyprland from Debian packages
|
||||
if [ "$HYPRLAND_FROM_SOURCE" != "1" ]; then
|
||||
printf "\n%s - Installing ${YELLOW}Hyprland from Debian packages${RESET} .... \n" "${NOTE}"
|
||||
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
# Core Hyprland packages; pinning (if configured) will select sid/testing as needed
|
||||
install_package "hyprland" 2>&1 | tee -a "$LOG"
|
||||
install_package "hyprland-dev" 2>&1 | tee -a "$LOG" || true
|
||||
install_package "hyprland-backgrounds" 2>&1 | tee -a "$LOG" || true
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Would install hyprland, hyprland-dev and hyprland-backgrounds from APT."
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Installation of dependencies for source builds
|
||||
printf "\n%s - Installing hyprland additional dependencies (source build).... \n" "${NOTE}"
|
||||
# Installation of dependencies
|
||||
printf "\n%s - Installing hyprland additional dependencies.... \n" "${NOTE}"
|
||||
|
||||
for PKG1 in "${hyprland[@]}"; do
|
||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||
|
||||
@ -31,15 +31,36 @@ fi
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprlang.log"
|
||||
MLOG="install-$(date +%d-%H%M%S)_hyprlang2.log"
|
||||
|
||||
# For this branch, prefer Debian packages for hyprlang by default
|
||||
printf "\n%s - Installing ${YELLOW}hyprlang (Debian packages)${RESET} .... \n" "${INFO}"
|
||||
# Installation of dependencies
|
||||
printf "\n%s - Installing ${YELLOW}hyprlang dependencies${RESET} .... \n" "${INFO}"
|
||||
|
||||
# Check if hyprlang directory exists and remove it
|
||||
if [ -d "hyprlang" ]; then
|
||||
rm -rf "hyprlang"
|
||||
fi
|
||||
|
||||
# Clone and build
|
||||
printf "${INFO} Installing ${YELLOW}hyprlang $tag${RESET} ...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprlang.git; then
|
||||
cd hyprlang || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||
cmake --build ./build --config Release --target hyprlang -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
install_package "libhyprlang2" 2>&1 | tee -a "$LOG"
|
||||
install_package "libhyprlang-dev" 2>&1 | tee -a "$LOG"
|
||||
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} ${MAGENTA}hyprlang tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Would install libhyprlang2 and libhyprlang-dev from APT."
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}hyprlang $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
fi
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Skipping installation of hyprlang $tag."
|
||||
fi
|
||||
#moving the addional logs to Install-Logs directory
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for ${YELLOW}hyprlang $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
@ -30,15 +30,34 @@ fi
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprutils.log"
|
||||
MLOG="install-$(date +%d-%H%M%S)_hyprutils2.log"
|
||||
|
||||
# For this branch, prefer Debian packages for hyprutils by default
|
||||
printf "${NOTE} Installing hyprutils (Debian packages)...\n"
|
||||
# Clone, build, and install using Cmake
|
||||
printf "${NOTE} Cloning hyprutils...\n"
|
||||
|
||||
# Check if hyprutils folder exists and remove it
|
||||
if [ -d "hyprutils" ]; then
|
||||
printf "${NOTE} Removing existing hyprutils folder...\n"
|
||||
rm -rf "hyprutils" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
if git clone -b $tag "https://github.com/hyprwm/hyprutils.git"; then
|
||||
cd "hyprutils" || exit 1
|
||||
cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr/local -S . -B ./build
|
||||
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
install_package "libhyprutils9" 2>&1 | tee -a "$LOG"
|
||||
install_package "libhyprutils-dev" 2>&1 | tee -a "$LOG"
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||
printf "${OK} hyprutils installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Would install libhyprutils9 and libhyprutils-dev from APT."
|
||||
echo -e "${ERROR} Installation failed for hyprutils." 2>&1 | tee -a "$MLOG"
|
||||
fi
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Skipping installation of hyprutils $tag."
|
||||
fi
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for hyprutils" 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
@ -34,14 +34,48 @@ fi
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprwayland-scanner.log"
|
||||
MLOG="install-$(date +%d-%H%M%S)_hyprwayland-scanner2.log"
|
||||
|
||||
## For this branch, prefer Debian package for hyprwayland-scanner
|
||||
printf "\n%s - Installing hyprwayland-scanner (Debian package).... \n" "${NOTE}"
|
||||
##
|
||||
# Installation of dependencies
|
||||
printf "\n%s - Installing hyprwayland-scanner dependencies.... \n" "${NOTE}"
|
||||
|
||||
for PKG1 in "${scan_depend[@]}"; do
|
||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "\e[1A\e[K${ERROR} - $PKG1 Package installation failed, Please check the installation logs"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
printf "${NOTE} Installing hyprwayland-scanner...\n"
|
||||
|
||||
# Check if hyprwayland-scanner folder exists and remove it
|
||||
if [ -d "hyprwayland-scanner" ]; then
|
||||
printf "${NOTE} Removing existing hyprwayland-scanner folder...\n"
|
||||
rm -rf "hyprwayland-scanner"
|
||||
fi
|
||||
|
||||
# Clone and build hyprlang
|
||||
printf "${NOTE} Installing hyprwayland-scanner...\n"
|
||||
if git clone --recursive -b $tag https://github.com/hyprwm/hyprwayland-scanner.git; then
|
||||
cd hyprwayland-scanner || exit 1
|
||||
cmake -DCMAKE_INSTALL_PREFIX=/usr -B build
|
||||
cmake --build build -j `nproc`
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
install_package "hyprwayland-scanner" 2>&1 | tee -a "$LOG"
|
||||
if sudo cmake --install build 2>&1 | tee -a "$MLOG" ; then
|
||||
printf "${OK} hyprwayland-scanner installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Would install hyprwayland-scanner from APT."
|
||||
echo -e "${ERROR} Installation failed for hyprwayland-scanner." 2>&1 | tee -a "$MLOG"
|
||||
fi
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Skipping installation of hyprwayland-scanner $tag."
|
||||
fi
|
||||
#moving the addional logs to Install-Logs directory
|
||||
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||
cd ..
|
||||
else
|
||||
echo -e "${ERROR} Download failed for hyprwayland-scanner. Please check log." 2>&1 | tee -a "$LOG"
|
||||
fi
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
@ -55,16 +55,51 @@ fi
|
||||
|
||||
# Set the name of the log file to include the current date and time
|
||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_rofi_wayland.log"
|
||||
MLOG="install-$(date +%d-%H%M%S)_rofi_wayland2.log"
|
||||
|
||||
# For this branch, prefer Debian rofi (with Wayland support) instead of building rofi-wayland
|
||||
printf "\n%s - Installing ${SKY_BLUE}rofi (Debian package, Wayland-capable)${RESET}.... \n" "${INFO}"
|
||||
# Installation of main components
|
||||
printf "\n%s - Re-installing ${SKY_BLUE}rofi-wayland dependencies${RESET}.... \n" "${INFO}"
|
||||
|
||||
if [ $DO_INSTALL -eq 1 ]; then
|
||||
install_package "rofi" 2>&1 | tee -a "$LOG"
|
||||
# Optional: headers for themes or building scripts
|
||||
install_package "rofi-dev" 2>&1 | tee -a "$LOG" || true
|
||||
else
|
||||
echo "${NOTE} DRY RUN: Would install rofi and rofi-dev from APT (Wayland-capable rofi 2.0.0)."
|
||||
fi
|
||||
for FORCE in "${rofi[@]}"; do
|
||||
re_install_package "$FORCE" "$LOG"
|
||||
done
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
# Clone and build rofi - wayland
|
||||
printf "${NOTE} Building and Installing ${SKY_BLUE}rofi-wayland${RESET} $rofi_tag ...\n"
|
||||
|
||||
# Check if rofi directory exists
|
||||
if [ -d "rofi-$rofi_tag" ]; then
|
||||
rm -rf "rofi-$rofi_tag"
|
||||
fi
|
||||
|
||||
# cloning rofi-wayland
|
||||
printf "${NOTE} Downloading ${YELLOW}rofi-wayland $rofi_tag${RESET} from releases...\n"
|
||||
wget $release_url
|
||||
|
||||
if [ -f "rofi-$rofi_tag.tar.gz" ]; then
|
||||
printf "${OK} ${YELLOW}rofi-wayland $rofi_tag${RESET} downloaded successfully.\n" 2>&1 | tee -a "$LOG"
|
||||
tar xf rofi-$rofi_tag.tar.gz
|
||||
fi
|
||||
|
||||
cd rofi-$rofi_tag || exit 1
|
||||
|
||||
# Proceed with the installation steps
|
||||
if meson setup build && ninja -C build ; then
|
||||
if sudo ninja -C build install 2>&1 | tee -a "$MLOG"; then
|
||||
printf "${OK} rofi-wayland installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||
else
|
||||
echo -e "${ERROR} Installation failed for ${YELLOW}rofi-wayland $rofi_tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
fi
|
||||
else
|
||||
echo -e "${ERROR} Meson setup or ninja build failed for ${YELLOW}rofi-wayland $rofi_tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||
fi
|
||||
|
||||
# Move logs to Install-Logs directory
|
||||
mv "$MLOG" ../Install-Logs/ || true
|
||||
cd .. || exit 1
|
||||
|
||||
# clean up
|
||||
rm -rf rofi-$rofi_tag.tar.gz
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
|
||||
146
install.sh
146
install.sh
@ -101,118 +101,6 @@ if is_ubuntu; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ensure sid repo and pinning are configured for Hyprland-related packages
|
||||
ensure_sid_repo_and_pinning() {
|
||||
# Add sid source if not present
|
||||
if [ ! -f /etc/apt/sources.list.d/sid.list ]; then
|
||||
echo "${NOTE} Adding Debian sid repository (low priority by default)" | tee -a "$LOG"
|
||||
echo "deb http://deb.debian.org/debian sid main contrib non-free non-free-firmware" | sudo tee /etc/apt/sources.list.d/sid.list >/dev/null
|
||||
fi
|
||||
|
||||
# Global low priority for sid
|
||||
if [ ! -f /etc/apt/preferences.d/99-sid-low.pref ]; then
|
||||
echo "${NOTE} Creating global low-priority pin for sid (Pin-Priority: 50)" | tee -a "$LOG"
|
||||
sudo tee /etc/apt/preferences.d/99-sid-low.pref >/dev/null <<'EOF'
|
||||
Package: *
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 50
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Prefer sid/testing for specific Hyprland-related libraries and tools
|
||||
if [ ! -f /etc/apt/preferences.d/90-hyprland-sid.pref ]; then
|
||||
echo "${NOTE} Creating Hyprland-specific pinning for sid/testing libs" | tee -a "$LOG"
|
||||
sudo tee /etc/apt/preferences.d/90-hyprland-sid.pref >/dev/null <<'EOF'
|
||||
Package: wlroots
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libwlroots-*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: wayland-protocols
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: xwayland
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libdisplay-info*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libgulkan*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: vulkan-utility-libraries-dev
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: vulkan-validationlayers
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libre2-*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libudis86*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libxcb-errors*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libtomlplusplus*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libhyprcursor*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libhyprlang*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libhyprgraphics*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: libhyprutils*
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: hyprwayland-scanner
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: hyprland
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: hyprland-dev
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: hyprland-backgrounds
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
|
||||
Package: qml6-module-org-hyprland-style
|
||||
Pin: release a=sid
|
||||
Pin-Priority: 990
|
||||
EOF
|
||||
fi
|
||||
|
||||
echo "${NOTE} Updating APT package lists (including sid metadata)" | tee -a "$LOG"
|
||||
sudo apt update | tee -a "$LOG"
|
||||
}
|
||||
|
||||
# install whiptails if detected not installed. Necessary for this version
|
||||
if ! command -v whiptail >/dev/null; then
|
||||
echo "${NOTE} - whiptail is not installed. Installing..." | tee -a "$LOG"
|
||||
@ -220,9 +108,6 @@ if ! command -v whiptail >/dev/null; then
|
||||
printf "\n%.0s" {1..1}
|
||||
fi
|
||||
|
||||
# Ensure sid repo/pinning before we start pulling Hyprland ecosystem packages
|
||||
ensure_sid_repo_and_pinning
|
||||
|
||||
printf "\n%.0s" {1..2}
|
||||
echo -e "\e[35m
|
||||
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
|
||||
@ -262,27 +147,6 @@ fi
|
||||
# Path to the install-scripts directory
|
||||
script_directory=install-scripts
|
||||
|
||||
# Install core Hyprland stack from Debian packages by default (Hyprland 0.51.1 and ecosystem)
|
||||
install_debian_hyprland_stack() {
|
||||
echo "${NOTE} Installing Debian Hyprland stack (0.51.1+ds-1 and related tools) ..." | tee -a "$LOG"
|
||||
sudo apt install -y \
|
||||
hyprland/sid \
|
||||
hyprland-dev/sid \
|
||||
hyprland-backgrounds/sid \
|
||||
qml6-module-org-hyprland-style/sid \
|
||||
hypridle \
|
||||
hyprlock \
|
||||
hyprpaper \
|
||||
hyprpicker \
|
||||
hyprland-protocols \
|
||||
xdg-desktop-portal-hyprland \
|
||||
rofi \
|
||||
rofi-dev || {
|
||||
echo "${ERROR} Failed to install Debian Hyprland stack. Please check your APT configuration." | tee -a "$LOG"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
# Function to execute a script if it exists and make it executable
|
||||
execute_script() {
|
||||
local script="$1"
|
||||
@ -511,9 +375,6 @@ echo "${INFO} Installing ${SKY_BLUE}necessary fonts...${RESET}" | tee -a "$LOG"
|
||||
sleep 1
|
||||
execute_script "fonts.sh"
|
||||
|
||||
# Install core Debian Hyprland stack (0.51.1+ds-1 and ecosystem) before running Hyprland-specific scripts
|
||||
install_debian_hyprland_stack
|
||||
|
||||
# Optional: refresh tags before building the Hyprland stack
|
||||
# Set FETCH_LATEST=1 to opt-in (default is no-refresh to honor pinned tags)
|
||||
if [ "${FETCH_LATEST:-0}" = "1" ] && [ -f ./refresh-hypr-tags.sh ]; then
|
||||
@ -542,8 +403,6 @@ execute_script "aquamarine.sh"
|
||||
sleep 1
|
||||
execute_script "hyprland-qt-support.sh"
|
||||
sleep 1
|
||||
execute_script "hyprland-qtutils.sh"
|
||||
sleep 1
|
||||
execute_script "hyprland-guiutils.sh"
|
||||
sleep 1
|
||||
execute_script "hyprland-protocols.sh"
|
||||
@ -667,9 +526,8 @@ execute_script "03-Final-Check.sh"
|
||||
|
||||
printf "\n%.0s" {1..1}
|
||||
|
||||
# Check if Hyprland is available in PATH or in standard system locations
|
||||
if command -v Hyprland >/dev/null 2>&1 || command -v hyprland >/dev/null 2>&1 || \
|
||||
[ -x /usr/bin/Hyprland ] || [ -x /usr/bin/hyprland ]; then
|
||||
# Check if either hyprland or Hyprland files exist in /usr/local/bin/
|
||||
if [ -e /usr/local/bin/hyprland ] || [ -f /usr/local/bin/Hyprland ]; then
|
||||
printf "\n ${OK} 👌 Hyprland is installed. However, some essential packages may not be installed. Please see above!"
|
||||
printf "\n${CAT} Ignore this message if it states ${YELLOW}All essential packages${RESET} are installed as per above\n"
|
||||
sleep 2
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user