mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2026-02-05 17:50:14 +01:00
* Testing build from debian packages
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
new file: BUILD_METHOD_OPTIONS.md
new file: CHANGES_SUMMARY.md
new file: GIT_STATUS.md
new file: INSTALL_METHOD_GUIDE.md
new file: QUICK_START.txt
modified: install.sh
* Fix package installation: skip plugins and debug symbols by default, improve dependency handling
* Add comprehensive troubleshooting guide for package installation issues
* Fix package installation path handling: use full paths instead of cd to preserve working directory
* Removed files related to debian pacakge building
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
deleted: BUILD_METHOD_OPTIONS.md
deleted: GIT_STATUS.md
deleted: INSTALL_METHOD_GUIDE.md
deleted: PACKAGE_INSTALL_TROUBLESHOOTING.md
deleted: QUICK_START.txt
* Ported ubuntu quickshell install script to debian
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
new file: install-scripts/quickshell.sh
* Forgot to add quickshell as install option
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install.sh
* Added missing depdendencies to debian quickshell
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Fixing QML import pathing
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Adding shim for missing QML properies
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Added check for debian trixie in quickshell install
Trixe doesn't support overview seems like the QT libs are too old
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Fixed typo in script
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: refresh-hypr-tags.sh
* libmuparser-dev is now needed
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/00-dependencies.sh
modified: install-scripts/hyprland.sh
* Adding hyprwire depdency
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hypr-tags.env
new file: install-scripts/hyprwire.sh
modified: install.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Updating hyprwire build order
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Fixing script permissions
* fixing hyprwire build error
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Still fixing hyprwire build errors
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Fixing SED error. (I Hate sed)
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Still getting append errors trying another fix
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Updated tags for 0.53.0
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: ../hypr-tags.env
modified: hyprland.sh
* Fixing build error on hyprland
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprland.sh
* Still getting build errors with hyprland
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* More build errors to fix
On branch development
Your branch is ahead of 'origin/development' by 1 commit.
(use "git push" to publish your local commits)
Changes to be committed:
modified: install-scripts/hyprland.sh
* Fixind SED error
* Hyprland tag set to 52.2
* Scripts has hardcoded versions vs. pulling hypr-env
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/aquamarine.sh
modified: install-scripts/hyprcursor.sh
modified: install-scripts/hyprgraphics.sh
modified: install-scripts/hyprland-guiutils.sh
modified: install-scripts/hyprland-protocols.sh
modified: install-scripts/hyprland-qt-support.sh
modified: install-scripts/hyprland.sh
modified: install-scripts/hyprlang.sh
modified: install-scripts/hyprtoolkit.sh
modified: install-scripts/hyprutils.sh
modified: install-scripts/hyprwayland-scanner.sh
modified: install-scripts/hyprwire.sh
modified: install-scripts/wayland-protocols-src.sh
* Fixing update-hyprland to support tags
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprutils.sh
modified: update-hyprland.sh
* Fixing update-hyprland (again) to use env-tags
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: update-hyprland.sh
* Fixing update-hyprland
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: update-hyprland.sh
* Trying to get trixie to build
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Updated README re: NVIDIA drivers & HL 0.52.2+ on Trixie
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: README.md
* UPD: Before ubunmtu was out-of-date, now can run HL dots
previsously ubuntu was older HL. Now it's up to date and can
also run current dotfiles. Removed old statement saying ubuntu could not
run current dotfiles.
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: README.md
* Pinned version to 52.2 for debian stable support
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOGS.md
deleted: CHANGES_SUMMARY.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: hypr-tags.env
new file: hypr-tags.env-v.053
modified: update-hyprland.sh
* Fixed update-hyprland refresh-hypr-tags --force-override
It now assumes --fetch-latest
Small formatting fixes
Now shows version to upgrade too and pause to allow review
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOGS.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: dry-run-build.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Fixing build scrpt to work onm debian stable
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland-guiutils.sh
* Added selectable shim for hyprwire to allow building on trixie
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Fixed hyprland 0.53 build for trixie found bug in xdph script
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprland.sh
modified: xdph.sh
modified: ../install.sh
modified: ../update-hyprland.sh
* Major Update Debian trixie 0.53.1 support new build flags
Trixie needs small patches to build vs. testing+
Script now detects that. But some debian based distros might mask name
There is a flag `--force-trixie` to include the fixes
Updated the Install-Upgrade documents with the specifics
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOGS.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: README.md
modified: hypr-tags.env
deleted: hypr-tags.env-v.053
modified: install.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Updated CHANGELOG with note about debian stable support
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
renamed: CHANGELOGS.md -> CHANGELOG.md
* Sync README/CHANGELOG with main
* Updated CHANGELOG and README re: debian trixie upgrades to Forky+
You must recompile Hyprland
`update-hyprland --install --with-deps`
Otherwise hyprland won't start
You will be returned to the login manager
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
modified: README.md
* Fixed install script to pull current headers for versioning
Fastfetch was showing wrong version duo to header files from 52.2
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Improved syncing versioning
Gets commit hash, tag, date, commit count, dirty state from hyprland --version.
Pulls library versions from hyprland --version first, and falls back to hypr-tags.env if missing.
Writes those values into /usr/include/hyprland/src/version.h.
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Fixed ver mismatch in FF Pinned stable to 53.2 create build dir
Now the code will compile in build directory vs. base directory
Easier to clean up
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: README.md
modified: hypr-tags.env
modified: install-scripts/Global_functions.sh
modified: install-scripts/ags.sh
modified: install-scripts/aquamarine.sh
modified: install-scripts/hyprcursor.sh
modified: install-scripts/hyprgraphics.sh
modified: install-scripts/hypridle.sh
modified: install-scripts/hyprland-guiutils.sh
modified: install-scripts/hyprland-protocols.sh
modified: install-scripts/hyprland-qt-support.sh
modified: install-scripts/hyprland.sh
modified: install-scripts/hyprlang.sh
modified: install-scripts/hyprlock.sh
modified: install-scripts/hyprpolkitagent.sh
modified: install-scripts/hyprtoolkit.sh
modified: install-scripts/hyprutils.sh
modified: install-scripts/hyprwayland-scanner.sh
modified: install-scripts/hyprwire.sh
modified: install-scripts/quickshell.sh
modified: install-scripts/rofi-wayland.sh
modified: install-scripts/wayland-protocols-src.sh
modified: install-scripts/xdph.sh
modified: install-scripts/xkbcommon.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Moved source and builds to build dir
Cleanup is now just removing the build directory and install-logs
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/Global_functions.sh
modified: install-scripts/ags.sh
modified: install-scripts/aquamarine.sh
modified: install-scripts/dotfiles-branch.sh
modified: install-scripts/gtk_themes.sh
modified: install-scripts/hyprcursor.sh
modified: install-scripts/hyprgraphics.sh
modified: install-scripts/hypridle.sh
modified: install-scripts/hyprland-guiutils.sh
modified: install-scripts/hyprland-protocols.sh
modified: install-scripts/hyprland-qt-support.sh
modified: install-scripts/hyprland.sh
modified: install-scripts/hyprlang.sh
modified: install-scripts/hyprlock.sh
modified: install-scripts/hyprpolkitagent.sh
modified: install-scripts/hyprtoolkit.sh
modified: install-scripts/hyprutils.sh
modified: install-scripts/hyprwayland-scanner.sh
modified: install-scripts/hyprwire.sh
modified: install-scripts/quickshell.sh
modified: install-scripts/rofi-wayland.sh
modified: install-scripts/rog.sh
modified: install-scripts/sddm_theme.sh
modified: install-scripts/swww.sh
modified: install-scripts/wayland-protocols-src.sh
modified: install-scripts/xdph.sh
modified: install-scripts/xkbcommon.sh
modified: install-scripts/zsh_pokemon.sh
* Fixed build error with hyprtoolkit
* Updated docs for new build dir layout and how to clean up after
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
* Updated CHANGELOG with build dir change and fixes
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
159 lines
5.4 KiB
Bash
Executable File
159 lines
5.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# 💫 https://github.com/JaKooLit 💫 #
|
|
# Hypr Ecosystem
|
|
# hyprwire
|
|
|
|
# Specific branch or release (honor env override)
|
|
tag="v0.1.0"
|
|
# Auto-source centralized tags if env is unset
|
|
if [ -z "${HYPRWIRE_TAG:-}" ]; then
|
|
TAGS_FILE="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/hypr-tags.env"
|
|
[ -f "$TAGS_FILE" ] && source "$TAGS_FILE"
|
|
fi
|
|
if [ -n "${HYPRWIRE_TAG:-}" ]; then tag="$HYPRWIRE_TAG"; fi
|
|
|
|
# Dry-run support + shim controls
|
|
DO_INSTALL=1
|
|
FORCE_SHIM=0
|
|
NO_SHIM=0
|
|
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--dry-run)
|
|
DO_INSTALL=0
|
|
;;
|
|
# Force the compatibility shim used on Debian 13 (trixie) toolchains.
|
|
# This is intentionally distro-named so it's obvious what it does for most users.
|
|
--build-trixie|--force-shim)
|
|
FORCE_SHIM=1
|
|
;;
|
|
# For testing/sid (or any toolchain that supports std::vector::append_range), allow opting out.
|
|
--no-shim)
|
|
NO_SHIM=1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
|
DO_INSTALL=0
|
|
fi
|
|
|
|
if [ $DO_INSTALL -eq 0 ]; then
|
|
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)_hyprwire.log"
|
|
MLOG="install-$(date +%d-%H%M%S)_hyprwire2.log"
|
|
|
|
printf "${NOTE} Installing hyprwire $tag...\n"
|
|
|
|
# Remove existing tree if present (under build/src)
|
|
SRC_DIR="$SRC_ROOT/hyprwire"
|
|
if [ -d "$SRC_DIR" ]; then
|
|
printf "${NOTE} Removing existing hyprwire folder...\n"
|
|
rm -rf "$SRC_DIR" 2>&1 | tee -a "$LOG"
|
|
fi
|
|
|
|
# Clone and build
|
|
if git clone --recursive -b "$tag" https://github.com/hyprwm/hyprwire.git "$SRC_DIR"; then
|
|
cd "$SRC_DIR" || exit 1
|
|
BUILD_DIR="$BUILD_ROOT/hyprwire"
|
|
mkdir -p "$BUILD_DIR"
|
|
|
|
# Decide whether we need the append_range compatibility shim.
|
|
# On Debian 13 (trixie), libstdc++ typically lacks std::vector::append_range, so we patch.
|
|
# On newer toolchains (testing/sid), prefer building upstream unmodified.
|
|
NEED_SHIM=0
|
|
if [ "$NO_SHIM" -eq 1 ]; then
|
|
NEED_SHIM=0
|
|
elif [ "$FORCE_SHIM" -eq 1 ]; then
|
|
NEED_SHIM=1
|
|
else
|
|
CXX_TEST="${CXX:-c++}"
|
|
TMPD="$(mktemp -d)"
|
|
cat >"$TMPD/append_range_test.cpp" <<'EOF'
|
|
#include <vector>
|
|
int main() {
|
|
std::vector<unsigned char> v;
|
|
v.append_range(std::vector<unsigned char>{1,2,3});
|
|
return 0;
|
|
}
|
|
EOF
|
|
if "$CXX_TEST" -std=c++23 -c "$TMPD/append_range_test.cpp" -o /dev/null >/dev/null 2>&1; then
|
|
NEED_SHIM=0
|
|
else
|
|
NEED_SHIM=1
|
|
fi
|
|
rm -rf "$TMPD"
|
|
fi
|
|
|
|
if [ "$NEED_SHIM" -eq 1 ]; then
|
|
echo "${NOTE} Applying append_range compatibility shim (use --no-shim to disable; --build-trixie to force)."
|
|
|
|
# Temporary compatibility shim for toolchains where libstdc++ lacks std::vector::append_range (C++23 library feature).
|
|
# Note: append_range in upstream accepts temporaries (e.g. encodeVarInt(...) returns a temporary vector). To support that,
|
|
# we bind the expression to a named auto&& first.
|
|
cat > append_range_compat.hpp <<'EOF'
|
|
#pragma once
|
|
#include <iterator>
|
|
|
|
// Append any begin/end range to a container, supporting temporaries by binding to auto&&.
|
|
#define APPEND_RANGE(vec, ...) do { \
|
|
auto&& _r = (__VA_ARGS__); \
|
|
(vec).insert((vec).end(), std::begin(_r), std::end(_r)); \
|
|
} while(0)
|
|
EOF
|
|
|
|
# Replace X.(.|->)append_range(Y) -> APPEND_RANGE(X, Y) only where it appears
|
|
PATCH_FILES=$(grep -RIl --exclude-dir=.git -F 'append_range(' . || true)
|
|
if [ -n "$PATCH_FILES" ]; then
|
|
# LHS: identifiers and common member/ptr chains (this->obj, ns::obj.member)
|
|
echo "$PATCH_FILES" | xargs -r sed -ri 's/([A-Za-z_][A-Za-z0-9_:>.\-]+)\s*(\.|->)\s*append_range\s*\(/APPEND_RANGE(\1, /g'
|
|
# Show any remaining occurrences
|
|
REMAIN=$(grep -RIn --exclude-dir=.git -E '(\.|->)[[:space:]]*append_range[[:space:]]*\(' $PATCH_FILES || true)
|
|
if [ -n "$REMAIN" ]; then
|
|
echo "[WARN] Some append_range() calls remain unpatched:" >&2
|
|
echo "$REMAIN" >&2
|
|
fi
|
|
fi
|
|
|
|
# Absolute path for forced include
|
|
APPEND_HDR="$(pwd)/append_range_compat.hpp"
|
|
|
|
cmake -S . -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_FLAGS="-include ${APPEND_HDR}"
|
|
else
|
|
echo "${NOTE} Toolchain supports std::vector::append_range; building hyprwire without shim."
|
|
cmake -S . -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=23
|
|
fi
|
|
cmake --build "$BUILD_DIR" -j "$(nproc 2>/dev/null || getconf _NPROCESSORS_CONF)"
|
|
if [ $DO_INSTALL -eq 1 ]; then
|
|
if sudo cmake --install "$BUILD_DIR" 2>&1 | tee -a "$MLOG" ; then
|
|
printf "${OK} hyprwire $tag installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
|
else
|
|
echo -e "${ERROR} Installation failed for hyprwire $tag" 2>&1 | tee -a "$MLOG"
|
|
fi
|
|
else
|
|
echo "${NOTE} DRY RUN: Skipping installation of hyprwire $tag."
|
|
fi
|
|
[ -f "$MLOG" ] && mv "$MLOG" "$PARENT_DIR/Install-Logs/"
|
|
cd ..
|
|
else
|
|
echo -e "${ERROR} Download failed for hyprwire $tag" 2>&1 | tee -a "$LOG"
|
|
fi
|
|
|
|
printf "\n%.0s" {1..2}
|