* 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
12 KiB
Debian-Hyprland Install & Upgrade Guide
This guide covers the enhanced installation and upgrade workflows for KooL's Debian-Hyprland project, including new automation features, centralized version management, and dry-run capabilities.
Table of Contents
- Overview
- New Features
- Central Version Management
- Installation Methods
- Upgrade Workflows
- Dry-Run Testing
- Log Management
- Advanced Usage
- Troubleshooting
Overview
The Debian-Hyprland project now includes enhanced automation and management tools while maintaining backward compatibility with the original install.sh script. The key additions are:
- Centralized version management via
hypr-tags.env - Automated dependency ordering for Hyprland 0.51.x requirements
- Dry-run compilation testing without system modifications
- Selective component updates via
update-hyprland.sh - GitHub latest tag fetching for automatic version discovery
New Features
Enhanced install.sh
The original install.sh script now includes:
- Tag consistency: Reads
hypr-tags.envand exports version variables to all modules - Automatic wayland-protocols: Installs wayland-protocols from source (≥1.45) before Hyprland
- Robust dependency ordering: Ensures prerequisites are built in the correct sequence
New Scripts
update-hyprland.sh
A focused tool for managing and building just the Hyprland stack:
chmod +x ./update-hyprland.sh
./update-hyprland.sh --help # View all options
Key flags:
- --fetch-latest: pull latest release tags from GitHub
- --force-update: override pinned values in hypr-tags.env (equivalent to FORCE=1)
- --dry-run / --install: compile-only or compile+install
- --only / --skip: limit which modules run
dry-run-build.sh
A testing tool that compiles components without installing:
chmod +x ./dry-run-build.sh
./dry-run-build.sh --help # View all options
wayland-protocols-src.sh
A new module that builds wayland-protocols from source to satisfy Hyprland 0.51.x requirements.
Central Version Management
hypr-tags.env
This file contains version tags for all Hyprland components:
# Current versions (example)
HYPRLAND_TAG=v0.51.1
AQUAMARINE_TAG=v0.9.3
HYPRUTILS_TAG=v0.8.2
HYPRLANG_TAG=v0.6.4
HYPRGRAPHICS_TAG=v0.1.5
HYPRWAYLAND_SCANNER_TAG=v0.4.5
HYPRLAND_PROTOCOLS_TAG=v0.6.4
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
HYPRLAND_QTUTILS_TAG=v0.1.4
WAYLAND_PROTOCOLS_TAG=1.45
Version Override Priority
- Environment variables (exported)
- hypr-tags.env file values
- Default hardcoded values in each module
Installation Methods
Method 1: Original Full Installation
# Standard installation with all components
chmod +x install.sh
./install.sh
This method now automatically:
- Loads versions from
hypr-tags.env - Installs wayland-protocols from source before Hyprland
- Maintains proper dependency ordering
Method 2: Hyprland Stack Only
# Install only Hyprland and essential components
./update-hyprland.sh --install
Method 3: Fresh Installation with Latest Versions
# Fetch latest GitHub releases and install
./update-hyprland.sh --fetch-latest --install
# If your hypr-tags.env has pinned values and you want to override them:
./update-hyprland.sh --fetch-latest --force-update --install
Method 4: Preset-Based Installation
# Use preset file for automated choices
./install.sh --preset ./preset.sh
Upgrade Workflows
Quick link: Upgrade 0.49/0.50.x → 0.51.1
Upgrading to Latest Hyprland Release
Option A: Automatic Discovery
# Fetch latest tags and install (respects pins in hypr-tags.env)
./update-hyprland.sh --fetch-latest --install
# Force-override pinned values (same effect as running refresh with FORCE=1)
./update-hyprland.sh --fetch-latest --force-update --install
Option B: Specific Version
# Set specific Hyprland version
./update-hyprland.sh --set HYPRLAND=v0.51.1 --install
Option C: Test Before Installing
# Test compilation first, then install if successful
./update-hyprland.sh --fetch-latest --dry-run
# If successful:
./update-hyprland.sh --install
Upgrading Individual Components
# Update only core libraries (often needed for new Hyprland versions)
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
# Update aquamarine specifically
./update-hyprland.sh --set AQUAMARINE=v0.9.3 --install --only aquamarine
Selective Updates
# Install everything except Qt components
./update-hyprland.sh --install --skip hyprland-qt-support,hyprland-qtutils
# Install only specific components
./update-hyprland.sh --install --only hyprland,aquamarine
Upgrade: 0.49/0.50.x ➜ 0.51.1
If you’re currently on Hyprland 0.49 or 0.50.x, you can upgrade directly to 0.51.1 without a full reinstall.
Recommended path:
# Ensure hypr-tags.env pins the target version (skip if already v0.51.1)
./update-hyprland.sh --set HYPRLAND=v0.51.1
# Upgrade Hyprland (prerequisites are auto-included and ordered)
./update-hyprland.sh --install --only hyprland
Notes:
- The command will automatically ensure and run, as needed: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine, then hyprland.
- Full install via install.sh is not required for this upgrade unless you also want to install/refresh optional modules (e.g., SDDM, Bluetooth, Thunar, AGS, dotfiles) or you’re recovering from a failed/partial setup.
- Optional: add --with-deps to re-run dependency installation first:
./update-hyprland.sh --with-deps --install --only hyprland
- You can dry-run first to validate:
./update-hyprland.sh --dry-run --only hyprland
Dry-Run Testing
Why Use Dry-Run?
- Test compilation compatibility before installing
- Validate version combinations
- Debug build issues without system changes
- CI/CD pipeline integration
Basic Dry-Run Usage
# Test current tag configuration
./update-hyprland.sh --dry-run
# Test with latest GitHub releases
./update-hyprland.sh --fetch-latest --dry-run
# Test specific version
./update-hyprland.sh --set HYPRLAND=v0.51.1 --dry-run
Advanced Dry-Run Testing
# Use alternative summary format
./update-hyprland.sh --via-helper
# Test with dependencies installation
./dry-run-build.sh --with-deps
# Test only specific components
./dry-run-build.sh --only hyprland,aquamarine
Dry-Run Limitations
- Dependencies still install: apt operations run to ensure compilation succeeds
- pkg-config requirements: Some components need system-installed prerequisites
- No system changes: No files installed to /usr/local or /usr
Log Management
Log Location
All build activities generate timestamped logs in:
Install-Logs/
├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Main install log
├── install-DD-HHMMSS_module-name.log # Per-module logs
├── build-dry-run-YYYY-MM-DD-HHMMSS.log # Dry-run summary
└── update-hypr-YYYY-MM-DD-HHMMSS.log # Update tool summary
Log Analysis
# View most recent install log
ls -t Install-Logs/*.log | head -1 | xargs less
# Check for errors in specific module
grep -i error Install-Logs/install-*hyprland*.log
# View dry-run summary
cat Install-Logs/build-dry-run-*.log
Log Retention
- Logs accumulate over time for historical reference
- Manual cleanup recommended periodically:
# Keep only logs from last 30 days
find Install-Logs/ -name "*.log" -mtime +30 -delete
Advanced Usage
Tag Management
Force Update All Tags
# Override pinned values in hypr-tags.env to the latest releases
./update-hyprland.sh --fetch-latest --force-update --dry-run
# Install if the dry-run succeeds
./update-hyprland.sh --force-update --install
Backup and Restore
# Tags are automatically backed up on changes
# Restore most recent backup
./update-hyprland.sh --restore --dry-run
Multiple Version Sets
# Save current configuration
cp hypr-tags.env hypr-tags-stable.env
# Try experimental versions
./update-hyprland.sh --fetch-latest --dry-run
# Restore stable if needed
cp hypr-tags-stable.env hypr-tags.env
Environment Integration
Custom PKG_CONFIG_PATH
# Ensure /usr/local takes precedence
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
./update-hyprland.sh --install
Parallel Builds
# Control build parallelism (default: all cores)
export MAKEFLAGS="-j4"
./update-hyprland.sh --install
Development Workflow
Testing New Releases
# 1. Create test environment
cp hypr-tags.env hypr-tags.backup
# 2. Test new version
./update-hyprland.sh --set HYPRLAND=v0.52.0 --dry-run
# 3. Install if successful
./update-hyprland.sh --install
# 4. Rollback if issues
./update-hyprland.sh --restore --install
Component Development
# Install dependencies only
./update-hyprland.sh --with-deps --dry-run
# Manual module testing
DRY_RUN=1 ./install-scripts/hyprland.sh
# Check logs for specific module
tail -f Install-Logs/install-*hyprland*.log
Troubleshooting
Common Issues
CMake Configuration Fails
Symptoms: "Package dependency requirement not satisfied"
Solutions:
# Install missing prerequisites
./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang
# Clear build cache
rm -rf hyprland aquamarine hyprutils hyprlang
# Retry installation
./update-hyprland.sh --install --only hyprland
Compilation Errors
Symptoms: "too many errors emitted"
Solutions:
# Update core dependencies first
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
# Check for API mismatches in logs
grep -A5 -B5 "error:" Install-Logs/install-*hyprland*.log
Tag Not Found
Symptoms: "Remote branch X not found"
Solutions:
# Check available tags
git ls-remote --tags https://github.com/hyprwm/Hyprland
# Use confirmed existing tag
./update-hyprland.sh --set HYPRLAND=v0.50.1 --install
Debug Steps
-
Check system compatibility:
# Verify Debian version cat /etc/os-release # Ensure deb-src enabled grep -E "^deb-src" /etc/apt/sources.list -
Verify environment:
# Check current tags cat hypr-tags.env # Test dry-run first ./update-hyprland.sh --dry-run --only hyprland -
Analyze logs:
# Most recent errors grep -i "error\|fail" Install-Logs/*.log | tail -20 # Module-specific issues ls -la Install-Logs/install-*[component]*.log
Getting Help
- Check logs: Always review Install-Logs/ for detailed error information
- Test dry-run: Use --dry-run to validate before installing
- Community support: Submit issues with relevant log excerpts
- Documentation: Refer to main project README.md for base requirements
Migration from Previous Versions
Existing Installations
The new tools work alongside existing installations:
# Update existing installation
./update-hyprland.sh --install
# Test without affecting current system
./update-hyprland.sh --dry-run
Converting to Tag Management
# Current versions are saved to hypr-tags.env automatically
# Verify with:
cat hypr-tags.env
# Modify versions as needed:
./update-hyprland.sh --set HYPRLAND=v0.51.1
The enhanced workflow provides better control, testing capabilities, and automation while maintaining full compatibility with the original installation process.