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
|
# 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=(
|
uninstall=(
|
||||||
dunst
|
dunst
|
||||||
mako
|
mako
|
||||||
|
rofi
|
||||||
cargo
|
cargo
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ packages=(
|
|||||||
kitty
|
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=(
|
local_pkgs_installed=(
|
||||||
hyprland
|
hyprland
|
||||||
rofi
|
rofi
|
||||||
@ -61,9 +61,9 @@ for pkg in "${packages[@]}"; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Check for local packages in PATH (hyprland, rofi, etc.)
|
# Check for local packages
|
||||||
for pkg1 in "${local_pkgs_installed[@]}"; do
|
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")
|
local_missing+=("$pkg1")
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -88,9 +88,9 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${#local_missing[@]} -ne 0 ]; then
|
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
|
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
|
echo "$pkg1" >> "$LOG" # Log the missing local package to the file
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -31,15 +31,36 @@ fi
|
|||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
# 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"
|
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
|
# Installation of dependencies
|
||||||
printf "\n%s - Installing ${YELLOW}aquamarine (Debian package)${RESET} .... \n" "${INFO}"
|
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
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
install_package "libaquamarine8" 2>&1 | tee -a "$LOG"
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
install_package "libaquamarine-dev" 2>&1 | tee -a "$LOG"
|
printf "${OK} ${MAGENTA}aquamarine $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
else
|
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
|
fi
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..2}
|
||||||
@ -26,16 +26,41 @@ fi
|
|||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
# 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"
|
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
|
# Installation of dependencies
|
||||||
printf "\n%s - Installing hyprcursor (Debian packages).... \n" "${NOTE}"
|
printf "\n%s - Installing hyprcursor dependencies.... \n" "${NOTE}"
|
||||||
|
|
||||||
if [ $DO_INSTALL -eq 1 ]; then
|
for PKG1 in "${cursor[@]}"; do
|
||||||
# runtime and dev package
|
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||||
install_package "libhyprcursor0" 2>&1 | tee -a "$LOG"
|
if [ $? -ne 0 ]; then
|
||||||
install_package "libhyprcursor-dev" 2>&1 | tee -a "$LOG"
|
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
|
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
|
fi
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -34,15 +34,45 @@ fi
|
|||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
# 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"
|
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
|
# Installation of dependencies
|
||||||
printf "\n%s - Installing ${YELLOW}hyprgraphics (Debian packages)${RESET} .... \n" "${INFO}"
|
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
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
install_package "libhyprgraphics2" 2>&1 | tee -a "$LOG"
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
install_package "libhyprgraphics-dev" 2>&1 | tee -a "$LOG"
|
printf "${OK} ${MAGENTA}hyprgraphics $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
else
|
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
|
fi
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
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#
|
# Main Hyprland Package#
|
||||||
|
|
||||||
#specific branch or release
|
#specific branch or release
|
||||||
# Default source tag aligned with Debian sid package (0.51.1)
|
tag="v0.52.1"
|
||||||
tag="v0.51.1"
|
|
||||||
# Allow environment override
|
# Allow environment override
|
||||||
if [ -n "${HYPRLAND_TAG:-}" ]; then tag="$HYPRLAND_TAG"; fi
|
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."
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
fi
|
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=(
|
hyprland=(
|
||||||
clang
|
clang
|
||||||
llvm
|
llvm
|
||||||
@ -47,25 +42,8 @@ fi
|
|||||||
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland.log"
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_hyprland.log"
|
||||||
MLOG="install-$(date +%d-%H%M%S)_hyprland2.log"
|
MLOG="install-$(date +%d-%H%M%S)_hyprland2.log"
|
||||||
|
|
||||||
# If not explicitly told to build from source, install Hyprland from Debian packages
|
# Installation of dependencies
|
||||||
if [ "$HYPRLAND_FROM_SOURCE" != "1" ]; then
|
printf "\n%s - Installing hyprland additional dependencies.... \n" "${NOTE}"
|
||||||
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}"
|
|
||||||
|
|
||||||
for PKG1 in "${hyprland[@]}"; do
|
for PKG1 in "${hyprland[@]}"; do
|
||||||
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
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
|
# 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"
|
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
|
# Installation of dependencies
|
||||||
printf "\n%s - Installing ${YELLOW}hyprlang (Debian packages)${RESET} .... \n" "${INFO}"
|
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
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
install_package "libhyprlang2" 2>&1 | tee -a "$LOG"
|
if sudo cmake --install ./build 2>&1 | tee -a "$MLOG" ; then
|
||||||
install_package "libhyprlang-dev" 2>&1 | tee -a "$LOG"
|
printf "${OK} ${MAGENTA}hyprlang tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
else
|
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
|
fi
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -30,15 +30,34 @@ fi
|
|||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
# 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"
|
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
|
# Clone, build, and install using Cmake
|
||||||
printf "${NOTE} Installing hyprutils (Debian packages)...\n"
|
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
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
install_package "libhyprutils9" 2>&1 | tee -a "$LOG"
|
if sudo cmake --install build 2>&1 | tee -a "$MLOG"; then
|
||||||
install_package "libhyprutils-dev" 2>&1 | tee -a "$LOG"
|
printf "${OK} hyprutils installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
else
|
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
|
fi
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -34,14 +34,48 @@ fi
|
|||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
# 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"
|
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
|
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
|
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
|
fi
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
@ -55,16 +55,51 @@ fi
|
|||||||
|
|
||||||
# Set the name of the log file to include the current date and time
|
# 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"
|
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
|
# Installation of main components
|
||||||
printf "\n%s - Installing ${SKY_BLUE}rofi (Debian package, Wayland-capable)${RESET}.... \n" "${INFO}"
|
printf "\n%s - Re-installing ${SKY_BLUE}rofi-wayland dependencies${RESET}.... \n" "${INFO}"
|
||||||
|
|
||||||
if [ $DO_INSTALL -eq 1 ]; then
|
for FORCE in "${rofi[@]}"; do
|
||||||
install_package "rofi" 2>&1 | tee -a "$LOG"
|
re_install_package "$FORCE" "$LOG"
|
||||||
# Optional: headers for themes or building scripts
|
done
|
||||||
install_package "rofi-dev" 2>&1 | tee -a "$LOG" || true
|
|
||||||
else
|
printf "\n%.0s" {1..2}
|
||||||
echo "${NOTE} DRY RUN: Would install rofi and rofi-dev from APT (Wayland-capable rofi 2.0.0)."
|
# Clone and build rofi - wayland
|
||||||
fi
|
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}
|
printf "\n%.0s" {1..2}
|
||||||
|
|||||||
146
install.sh
146
install.sh
@ -101,118 +101,6 @@ if is_ubuntu; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
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
|
# install whiptails if detected not installed. Necessary for this version
|
||||||
if ! command -v whiptail >/dev/null; then
|
if ! command -v whiptail >/dev/null; then
|
||||||
echo "${NOTE} - whiptail is not installed. Installing..." | tee -a "$LOG"
|
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}
|
printf "\n%.0s" {1..1}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ensure sid repo/pinning before we start pulling Hyprland ecosystem packages
|
|
||||||
ensure_sid_repo_and_pinning
|
|
||||||
|
|
||||||
printf "\n%.0s" {1..2}
|
printf "\n%.0s" {1..2}
|
||||||
echo -e "\e[35m
|
echo -e "\e[35m
|
||||||
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
|
╦╔═┌─┐┌─┐╦ ╦ ╦┬ ┬┌─┐┬─┐┬ ┌─┐┌┐┌┌┬┐
|
||||||
@ -262,27 +147,6 @@ fi
|
|||||||
# Path to the install-scripts directory
|
# Path to the install-scripts directory
|
||||||
script_directory=install-scripts
|
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
|
# Function to execute a script if it exists and make it executable
|
||||||
execute_script() {
|
execute_script() {
|
||||||
local script="$1"
|
local script="$1"
|
||||||
@ -511,9 +375,6 @@ echo "${INFO} Installing ${SKY_BLUE}necessary fonts...${RESET}" | tee -a "$LOG"
|
|||||||
sleep 1
|
sleep 1
|
||||||
execute_script "fonts.sh"
|
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
|
# Optional: refresh tags before building the Hyprland stack
|
||||||
# Set FETCH_LATEST=1 to opt-in (default is no-refresh to honor pinned tags)
|
# 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
|
if [ "${FETCH_LATEST:-0}" = "1" ] && [ -f ./refresh-hypr-tags.sh ]; then
|
||||||
@ -542,8 +403,6 @@ execute_script "aquamarine.sh"
|
|||||||
sleep 1
|
sleep 1
|
||||||
execute_script "hyprland-qt-support.sh"
|
execute_script "hyprland-qt-support.sh"
|
||||||
sleep 1
|
sleep 1
|
||||||
execute_script "hyprland-qtutils.sh"
|
|
||||||
sleep 1
|
|
||||||
execute_script "hyprland-guiutils.sh"
|
execute_script "hyprland-guiutils.sh"
|
||||||
sleep 1
|
sleep 1
|
||||||
execute_script "hyprland-protocols.sh"
|
execute_script "hyprland-protocols.sh"
|
||||||
@ -667,9 +526,8 @@ execute_script "03-Final-Check.sh"
|
|||||||
|
|
||||||
printf "\n%.0s" {1..1}
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
# Check if Hyprland is available in PATH or in standard system locations
|
# Check if either hyprland or Hyprland files exist in /usr/local/bin/
|
||||||
if command -v Hyprland >/dev/null 2>&1 || command -v hyprland >/dev/null 2>&1 || \
|
if [ -e /usr/local/bin/hyprland ] || [ -f /usr/local/bin/Hyprland ]; then
|
||||||
[ -x /usr/bin/Hyprland ] || [ -x /usr/bin/hyprland ]; then
|
|
||||||
printf "\n ${OK} 👌 Hyprland is installed. However, some essential packages may not be installed. Please see above!"
|
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"
|
printf "\n${CAT} Ignore this message if it states ${YELLOW}All essential packages${RESET} are installed as per above\n"
|
||||||
sleep 2
|
sleep 2
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user