Donald Williams 886f22ede3
Development to main Pin def v0.53.2 chg build dir location fix versioning (#235)
* 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
2026-01-23 20:40:52 -05:00

133 lines
5.2 KiB
Bash
Executable File

#!/bin/bash
# 💫 https://github.com/JaKooLit 💫 #
# SDDM themes #
source_theme="https://github.com/JaKooLit/simple-sddm-2.git"
theme_name="simple_sddm_2"
## 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)_sddm_theme.log"
# SDDM-themes
printf "${INFO} Installing ${SKY_BLUE}Additional SDDM Theme${RESET}\n"
# Check if /usr/share/sddm/themes/$theme_name exists and remove if it does
if [ -d "/usr/share/sddm/themes/$theme_name" ]; then
sudo rm -rf "/usr/share/sddm/themes/$theme_name"
echo -e "\e[1A\e[K${OK} - Removed existing $theme_name directory." 2>&1 | tee -a "$LOG"
fi
# Check if $theme_name directory exists in build/src and remove if it does
SRC_DIR="$SRC_ROOT/$theme_name"
if [ -d "$SRC_DIR" ]; then
rm -rf "$SRC_DIR"
echo -e "\e[1A\e[K${OK} - Removed existing $theme_name directory from the current location." 2>&1 | tee -a "$LOG"
fi
# Clone the repository
if git clone --depth=1 "$source_theme" "$SRC_DIR"; then
if [ ! -d "$SRC_DIR" ]; then
echo "${ERROR} Failed to clone the repository." | tee -a "$LOG"
fi
# Create themes directory if it doesn't exist
if [ ! -d "/usr/share/sddm/themes" ]; then
sudo mkdir -p /usr/share/sddm/themes
echo "${OK} - Directory '/usr/share/sddm/themes' created." | tee -a "$LOG"
fi
# Move cloned theme to the themes directory
sudo mv "$SRC_DIR" "/usr/share/sddm/themes/$theme_name" 2>&1 | tee -a "$LOG"
# setting up SDDM theme
sddm_conf="/etc/sddm.conf"
BACKUP_SUFFIX=".bak"
echo -e "${NOTE} Setting up the login screen." | tee -a "$LOG"
# Backup the sddm.conf file if it exists
if [ -f "$sddm_conf" ]; then
echo "Backing up $sddm_conf" | tee -a "$LOG"
sudo cp "$sddm_conf" "$sddm_conf$BACKUP_SUFFIX" 2>&1 | tee -a "$LOG"
else
echo "$sddm_conf does not exist, creating a new one." | tee -a "$LOG"
sudo touch "$sddm_conf" 2>&1 | tee -a "$LOG"
fi
# Check if the [Theme] section exists
if grep -q '^\[Theme\]' "$sddm_conf"; then
# Update the Current= line under [Theme]
sudo sed -i "/^\[Theme\]/,/^\[/{s/^\s*Current=.*/Current=$theme_name/}" "$sddm_conf" 2>&1 | tee -a "$LOG"
# If no Current= line was found and replaced, append it after the [Theme] section
if ! grep -q '^\s*Current=' "$sddm_conf"; then
sudo sed -i "/^\[Theme\]/a Current=$theme_name" "$sddm_conf" 2>&1 | tee -a "$LOG"
echo "Appended Current=$theme_name under [Theme] in $sddm_conf" | tee -a "$LOG"
else
echo "Updated Current=$theme_name in $sddm_conf" | tee -a "$LOG"
fi
else
# Append the [Theme] section at the end if it doesn't exist
echo -e "\n[Theme]\nCurrent=$theme_name" | sudo tee -a "$sddm_conf" > /dev/null
echo "Added [Theme] section with Current=$theme_name in $sddm_conf" | tee -a "$LOG"
fi
# Add [General] section with InputMethod=qtvirtualkeyboard if it doesn't exist
if ! grep -q '^\[General\]' "$sddm_conf"; then
echo -e "\n[General]\nInputMethod=qtvirtualkeyboard" | sudo tee -a "$sddm_conf" > /dev/null
echo "Added [General] section with InputMethod=qtvirtualkeyboard in $sddm_conf" | tee -a "$LOG"
else
# Update InputMethod line if section exists
if grep -q '^\s*InputMethod=' "$sddm_conf"; then
sudo sed -i '/^\[General\]/,/^\[/{s/^\s*InputMethod=.*/InputMethod=qtvirtualkeyboard/}' "$sddm_conf" 2>&1 | tee -a "$LOG"
echo "Updated InputMethod to qtvirtualkeyboard in $sddm_conf" | tee -a "$LOG"
else
sudo sed -i '/^\[General\]/a InputMethod=qtvirtualkeyboard' "$sddm_conf" 2>&1 | tee -a "$LOG"
echo "Appended InputMethod=qtvirtualkeyboard under [General] in $sddm_conf" | tee -a "$LOG"
fi
fi
# Replace current background from assets
sudo cp -r assets/sddm.png "/usr/share/sddm/themes/$theme_name/Backgrounds/default" 2>&1 | tee -a "$LOG"
sudo sed -i 's|^wallpaper=".*"|wallpaper="Backgrounds/default"|' "/usr/share/sddm/themes/$theme_name/theme.conf" 2>&1 | tee -a "$LOG"
printf "\n%.0s" {1..1}
printf "${NOTE} copying ${YELLOW}JetBrains Mono Nerd Font${RESET} to ${YELLOW}/usr/local/share/fonts${RESET} .......\n"
printf "${NOTE} necessary for the new SDDM theme to work properly........\n"
sudo mkdir -p /usr/local/share/fonts/JetBrainsMonoNerd && \
sudo cp -r "$HOME/.local/share/fonts/JetBrainsMonoNerd" /usr/local/share/fonts/JetBrainsMonoNerd
if [ $? -eq 0 ]; then
echo "Fonts copied successfully."
else
echo "Failed to copy fonts."
fi
# Update font cache and log the output
fc-cache -v -f 2>&1 | tee -a "$LOG"
printf "\n%.0s" {1..1}
echo "${OK} - ${MAGENTA}Additional ${YELLOW}$theme_name SDDM Theme${RESET} successfully installed." | tee -a "$LOG"
else
echo "${ERROR} - Failed to clone the sddm theme repository. Please check your internet connection." | tee -a "$LOG" >&2
fi
printf "\n%.0s" {1..2}