mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2026-02-05 01:30:13 +01:00
Fixed build issues Hyprland on debian stable (trixie) (#237)
* 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
* Updated env-tag to Hyprland v0.53.3 fixed hyprpm
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
modified: hypr-tags.env
* Updated pinned version to 0.53.3
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Updated CHANGELOG text
* Fixed build issue with debian trixie
• All references to Nix::, Nix.hpp, Nix.cpp, --no-nixgl, and nixGL in the built Hyprland sources are removed via assets/0002-start-hyprland-no-nixgl.patch.
◦ The patch:
▪ Drops the Nix include and logic from start/src/core/Instance.cpp, start/src/core/State.hpp, and start/src/main.cpp.
▪ Removes the --no-nixgl flag and the Nix environment checks.
▪ Makes start-hyprland exec Hyprland directly, with no nixGL wrapper or Nix environment inspection.
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
new file: assets/0002-start-hyprland-no-nixgl.patch
modified: install-scripts/hyprland.sh
* Fixing the fix
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: assets/0002-start-hyprland-no-nixgl.patch
* Removed check for debian Hyprland packages not an option now
All builds are from source
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install.sh
* Updated CHANGELOG
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
This commit is contained in:
parent
2a01d9b65f
commit
7a3fbdaa15
10
CHANGELOG.md
10
CHANGELOG.md
@ -1,5 +1,15 @@
|
|||||||
## CHANGELOG
|
## CHANGELOG
|
||||||
|
|
||||||
|
## 27 January 2026
|
||||||
|
|
||||||
|
### Fixed build issue with Debian stable (trixie)
|
||||||
|
|
||||||
|
- All references to `Nix::`, `Nix.hpp`, `Nix.cpp`, `--no-nixgl`, and `nixGL` in the built Hyprland sources are removed via assets/0002-start-hyprland-no-nixgl.patch.
|
||||||
|
- The patch:
|
||||||
|
- Drops the Nix include and logic from `start/src/core/Instance.cpp`, `start/src/core/State.hpp`, and `start/src/main.cpp`.
|
||||||
|
- Removes the `--no-nixgl` flag and the Nix environment checks.
|
||||||
|
- Now `start-hyprland` starts `Hyprland` directly, with no `nixGL` wrapper or Nix environment inspection.
|
||||||
|
|
||||||
## 24 January 2026
|
## 24 January 2026
|
||||||
|
|
||||||
- Updated Hyprland version to v0.53.3
|
- Updated Hyprland version to v0.53.3
|
||||||
|
|||||||
91
assets/0002-start-hyprland-no-nixgl.patch
Normal file
91
assets/0002-start-hyprland-no-nixgl.patch
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
diff --git a/start/src/core/Instance.cpp b/start/src/core/Instance.cpp
|
||||||
|
index 2f5007b..8c6c73c 100644
|
||||||
|
--- a/start/src/core/Instance.cpp
|
||||||
|
+++ b/start/src/core/Instance.cpp
|
||||||
|
@@ -1,8 +1,6 @@
|
||||||
|
#include "Instance.hpp"
|
||||||
|
#include "State.hpp"
|
||||||
|
#include "../helpers/Logger.hpp"
|
||||||
|
-#include "../helpers/Nix.hpp"
|
||||||
|
-
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
#include <sys/poll.h>
|
||||||
|
@@ -54,13 +52,7 @@ void CHyprlandInstance::runHyprlandThread(bool safeMode) {
|
||||||
|
int sig = SIGKILL;
|
||||||
|
procctl(P_PID, getpid(), PROC_PDEATHSIG_CTL, &sig);
|
||||||
|
#endif
|
||||||
|
-
|
||||||
|
- if (Nix::shouldUseNixGL()) {
|
||||||
|
- argsStd.insert(argsStd.begin(), g_state->customPath.value_or("Hyprland"));
|
||||||
|
- args.insert(args.begin(), strdup(argsStd.front().c_str()));
|
||||||
|
- execvp("nixGL", args.data());
|
||||||
|
- } else
|
||||||
|
- execvp(g_state->customPath.value_or("Hyprland").c_str(), args.data());
|
||||||
|
+ execvp(g_state->customPath.value_or("Hyprland").c_str(), args.data());
|
||||||
|
|
||||||
|
g_logger->log(Hyprutils::CLI::LOG_ERR, "fork(): execvp failed: {}", strerror(errno));
|
||||||
|
std::fflush(stdout);
|
||||||
|
diff --git a/start/src/core/State.hpp b/start/src/core/State.hpp
|
||||||
|
index d00a175..6cf73a9 100644
|
||||||
|
--- a/start/src/core/State.hpp
|
||||||
|
+++ b/start/src/core/State.hpp
|
||||||
|
@@ -8,7 +8,6 @@
|
||||||
|
struct SState {
|
||||||
|
std::span<const char*> rawArgvNoBinPath;
|
||||||
|
std::optional<std::string> customPath;
|
||||||
|
- bool noNixGl = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
inline UP<SState> g_state = makeUnique<SState>();
|
||||||
|
\ No newline at end of file
|
||||||
|
diff --git a/start/src/main.cpp b/start/src/main.cpp
|
||||||
|
index e73fcfa..30e68f0 100644
|
||||||
|
--- a/start/src/main.cpp
|
||||||
|
+++ b/start/src/main.cpp
|
||||||
|
@@ -3,7 +3,6 @@
|
||||||
|
#include <print>
|
||||||
|
|
||||||
|
#include "helpers/Logger.hpp"
|
||||||
|
-#include "helpers/Nix.hpp"
|
||||||
|
#include "core/State.hpp"
|
||||||
|
#include "core/Instance.hpp"
|
||||||
|
|
||||||
|
@@ -21,7 +20,6 @@ Any arguments after -- are passed to Hyprland. For Hyprland help, run start-hypr
|
||||||
|
|
||||||
|
Additional arguments for start-hyprland:
|
||||||
|
--path [path] -> Override Hyprland path
|
||||||
|
- --no-nixgl -> Force disable nixGL
|
||||||
|
)#";
|
||||||
|
|
||||||
|
//
|
||||||
|
@@ -74,28 +72,13 @@ int main(int argc, const char** argv, const char** envp) {
|
||||||
|
|
||||||
|
g_state->customPath = argv[++i];
|
||||||
|
continue;
|
||||||
|
- }
|
||||||
|
- if (arg == "--no-nixgl") {
|
||||||
|
- g_state->noNixGl = true;
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ } }
|
||||||
|
|
||||||
|
if (startArgv != -1)
|
||||||
|
g_state->rawArgvNoBinPath = std::span<const char*>{argv + startArgv, argc - startArgv};
|
||||||
|
|
||||||
|
if (!g_state->rawArgvNoBinPath.empty())
|
||||||
|
g_logger->log(Hyprutils::CLI::LOG_WARN, "Arguments after -- are passed to Hyprland");
|
||||||
|
-
|
||||||
|
- // check if our environment is OK
|
||||||
|
- if (const auto RET = Nix::nixEnvironmentOk(); !RET) {
|
||||||
|
- g_logger->log(Hyprutils::CLI::LOG_ERR, "Nix environment check failed:\n{}", RET.error());
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (Nix::shouldUseNixGL())
|
||||||
|
- g_logger->log(Hyprutils::CLI::LOG_DEBUG, "Hyprland was compiled with Nix - will use nixGL");
|
||||||
|
-
|
||||||
|
bool safeMode = false;
|
||||||
|
while (true) {
|
||||||
|
g_instance = makeUnique<CHyprlandInstance>();
|
||||||
@ -139,6 +139,19 @@ EOF
|
|||||||
echo "${NOTE} Hyprland compile patch does not apply on $tag; skipping."
|
echo "${NOTE} Hyprland compile patch does not apply on $tag; skipping."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Optionally strip nixGL/Nix helper logic from start-hyprland (Debian does not need it)
|
||||||
|
if [ -f "$PARENT_DIR/assets/0002-start-hyprland-no-nixgl.patch" ]; then
|
||||||
|
if patch -p1 --dry-run <"$PARENT_DIR/assets/0002-start-hyprland-no-nixgl.patch" >/dev/null 2>&1; then
|
||||||
|
patch -p1 <"$PARENT_DIR/assets/0002-start-hyprland-no-nixgl.patch"
|
||||||
|
else
|
||||||
|
echo "${NOTE} Hyprland start-hyprland nixGL patch does not apply on $tag; skipping."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove Nix helper sources that are no longer used (defensive)
|
||||||
|
rm -f start/src/helpers/Nix.cpp start/src/helpers/Nix.hpp || true
|
||||||
|
|
||||||
# By default, build Hyprland with bundled hyprutils/hyprlang to avoid version mismatches
|
# By default, build Hyprland with bundled hyprutils/hyprlang to avoid version mismatches
|
||||||
# You can force system libs by exporting USE_SYSTEM_HYPRLIBS=1 before running this script.
|
# You can force system libs by exporting USE_SYSTEM_HYPRLIBS=1 before running this script.
|
||||||
USE_SYSTEM=${USE_SYSTEM_HYPRLIBS:-1}
|
USE_SYSTEM=${USE_SYSTEM_HYPRLIBS:-1}
|
||||||
|
|||||||
88
install.sh
88
install.sh
@ -1,9 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# https://github.com/JaKooLit
|
# https://github.com/JaKooLit
|
||||||
|
|
||||||
# Source location for pre-built Debian packages (can be local or network share)
|
|
||||||
# Set this variable to the path containing .deb files, or leave empty to build from source
|
|
||||||
DEB_PACKAGES_SOURCE="/mnt/nas/Projects/Jak/debian-pkg/build/debs"
|
|
||||||
|
|
||||||
clear
|
clear
|
||||||
|
|
||||||
@ -213,59 +210,6 @@ clean_existing_hyprland() {
|
|||||||
echo "${OK} Cleanup completed" | tee -a "$LOG"
|
echo "${OK} Cleanup completed" | tee -a "$LOG"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to install packages from pre-built .deb files
|
|
||||||
install_from_packages() {
|
|
||||||
echo "${INFO} Installing from pre-built packages at: ${SKY_BLUE}$DEB_PACKAGES_SOURCE${RESET}" | tee -a "$LOG"
|
|
||||||
|
|
||||||
if [ ! -d "$DEB_PACKAGES_SOURCE" ]; then
|
|
||||||
echo "${ERROR} Package source directory not found: $DEB_PACKAGES_SOURCE" | tee -a "$LOG"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local pkg_count=$(find "$DEB_PACKAGES_SOURCE" -name "*.deb" | wc -l)
|
|
||||||
if [ "$pkg_count" -eq 0 ]; then
|
|
||||||
echo "${ERROR} No .deb files found in $DEB_PACKAGES_SOURCE" | tee -a "$LOG"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "${INFO} Found ${SKY_BLUE}$pkg_count${RESET} .deb packages" | tee -a "$LOG"
|
|
||||||
|
|
||||||
# Clean up existing installations before installing from packages
|
|
||||||
echo "${CAT} Removing existing Hyprland installations to avoid conflicts..." | tee -a "$LOG"
|
|
||||||
clean_existing_hyprland
|
|
||||||
|
|
||||||
# Update package cache after cleanup
|
|
||||||
echo "${INFO} Updating package cache..." | tee -a "$LOG"
|
|
||||||
sudo apt-get update 2>&1 | tail -3 | tee -a "$LOG"
|
|
||||||
|
|
||||||
# Install core packages only (skip plugins and debug symbols)
|
|
||||||
echo "${INFO} Installing core Hyprland packages (excluding plugins and debug symbols)..." | tee -a "$LOG"
|
|
||||||
|
|
||||||
# Install only essential packages, skip plugins and dbgsym
|
|
||||||
for deb in "$DEB_PACKAGES_SOURCE"/*.deb; do
|
|
||||||
filename=$(basename "$deb")
|
|
||||||
|
|
||||||
# Skip debug symbols and plugins
|
|
||||||
if [[ "$filename" == *"-dbgsym_"* ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if [[ "$filename" == "hyprland-plugin-"* ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "${INFO} Installing: $filename" | tee -a "$LOG"
|
|
||||||
sudo dpkg -i "$deb" 2>&1 | tee -a "$LOG" || true
|
|
||||||
done
|
|
||||||
|
|
||||||
# Fix any dependency issues
|
|
||||||
echo "${INFO} Fixing any dependency issues..." | tee -a "$LOG"
|
|
||||||
sudo apt-get install -f -y 2>&1 | tail -5 | tee -a "$LOG"
|
|
||||||
|
|
||||||
echo "${OK} Core package installation completed!" | tee -a "$LOG"
|
|
||||||
echo "${NOTE} To install plugins, run: sudo dpkg -i $DEB_PACKAGES_SOURCE/hyprland-plugin-*.deb" | tee -a "$LOG"
|
|
||||||
echo "${NOTE} To install debug symbols, run: sudo dpkg -i $DEB_PACKAGES_SOURCE/*-dbgsym*.deb" | tee -a "$LOG"
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# Welcome message using whiptail (for displaying information)
|
# Welcome message using whiptail (for displaying information)
|
||||||
whiptail --title "KooL Debian-Hyprland Trixie+ (2025) Install Script" \
|
whiptail --title "KooL Debian-Hyprland Trixie+ (2025) Install Script" \
|
||||||
@ -274,24 +218,8 @@ ATTENTION: Run a full system update and Reboot first !!! (Highly Recommended)\n\
|
|||||||
NOTE: If you are installing on a VM, ensure to enable 3D acceleration otherwise Hyprland may NOT start!" \
|
NOTE: If you are installing on a VM, ensure to enable 3D acceleration otherwise Hyprland may NOT start!" \
|
||||||
15 80
|
15 80
|
||||||
|
|
||||||
# Ask user to choose build method
|
# Ask if the user wants to proceed (source-only build)
|
||||||
build_method="source"
|
|
||||||
if [ -d "$DEB_PACKAGES_SOURCE" ] && [ "$(find "$DEB_PACKAGES_SOURCE" -name "*.deb" 2>/dev/null | wc -l)" -gt 0 ]; then
|
|
||||||
if whiptail --title "Build Method" \
|
|
||||||
--yesno "Pre-built Hyprland packages are available at:\n$DEB_PACKAGES_SOURCE\n\nWould you like to install from pre-built packages?\n\nSelect YES for faster installation from packages\nSelect NO to build from source (takes longer)" 15 70; then
|
|
||||||
build_method="packages"
|
|
||||||
echo "${OK} Selected build method: ${SKY_BLUE}Pre-built Packages${RESET}" | tee -a "$LOG"
|
|
||||||
else
|
|
||||||
echo "${OK} Selected build method: ${SKY_BLUE}From Source${RESET}" | tee -a "$LOG"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ask if the user wants to proceed
|
|
||||||
if [ "$build_method" = "packages" ]; then
|
|
||||||
proceed_msg="Build method: PRE-BUILT PACKAGES\n\nThis will install pre-compiled Hyprland packages from the shared location.\n\nShall we proceed?"
|
|
||||||
else
|
|
||||||
proceed_msg="Build method: FROM SOURCE\n\nVERY IMPORTANT!!!\nYou must be able to install from source by uncommenting deb-src on /etc/apt/sources.list else script may fail.\n\nShall we proceed?"
|
proceed_msg="Build method: FROM SOURCE\n\nVERY IMPORTANT!!!\nYou must be able to install from source by uncommenting deb-src on /etc/apt/sources.list else script may fail.\n\nShall we proceed?"
|
||||||
fi
|
|
||||||
|
|
||||||
if ! whiptail --title "Proceed with Installation?" \
|
if ! whiptail --title "Proceed with Installation?" \
|
||||||
--yesno "$proceed_msg" 15 60; then
|
--yesno "$proceed_msg" 15 60; then
|
||||||
@ -552,18 +480,7 @@ echo "${INFO} Installing ${SKY_BLUE}necessary fonts...${RESET}" | tee -a "$LOG"
|
|||||||
sleep 1
|
sleep 1
|
||||||
execute_script "fonts.sh"
|
execute_script "fonts.sh"
|
||||||
|
|
||||||
# Build method selection: from source or pre-built packages
|
# Build from source (only method)
|
||||||
if [ "$build_method" = "packages" ]; then
|
|
||||||
echo "${INFO} Installing from ${SKY_BLUE}pre-built packages${RESET}..." | tee -a "$LOG"
|
|
||||||
sleep 1
|
|
||||||
if install_from_packages; then
|
|
||||||
echo "${OK} Pre-built packages installed successfully!" | tee -a "$LOG"
|
|
||||||
else
|
|
||||||
echo "${ERROR} Failed to install pre-built packages. Exiting..." | tee -a "$LOG"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Build from source (original method)
|
|
||||||
# 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
|
||||||
@ -616,7 +533,6 @@ else
|
|||||||
execute_script "hyprlock.sh"
|
execute_script "hyprlock.sh"
|
||||||
sleep 1
|
sleep 1
|
||||||
execute_script "hypridle.sh"
|
execute_script "hypridle.sh"
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure /usr/local/lib is in the dynamic linker search path.
|
# Ensure /usr/local/lib is in the dynamic linker search path.
|
||||||
# Many Hypr* components install shared libraries into /usr/local/lib; without this,
|
# Many Hypr* components install shared libraries into /usr/local/lib; without this,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user