From ca0c23cce006ea3f7d793c5fa8eee6acff196470 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sun, 30 Nov 2025 20:04:02 -0500 Subject: Integrate Quickshell-Overview with Qt6 fixes and automation scripts ## Overview This commit integrates the corrected Quickshell-Overview feature across all installation and update workflows. The overview provides an AGS alternative with live window previews toggled via Super+TAB keybind. ## Changes ### 1. Quickshell Overview QML Files - Added config/quickshell/overview/ subdirectory with Qt6-compatible QML - Includes 20+ files covering: * OverviewWindow.qml with proper clipping (no OpacityMask, uses QtQuick.Effects) * OverviewWidget.qml for window handling * Overview.qml main component with Hyprland integration * Common utilities and styling * Services for Hyprland data and global state management ### 2. copy.sh Updates - Removes default shell.qml that blocks quickshell named config detection - Auto-copies config/quickshell/overview to ~/.config/quickshell/overview/ - Updates old 'qs' startup commands to 'qs -c overview' - Handles both fresh installs and config overwrite scenarios ### 3. upgrade.sh Updates - Added config/quickshell/ to upgrade directory list - Excludes shell.qml to preserve overview config detection capability - Enables seamless upgrades without losing quickshell settings ### 4. IPC Command Fixes - Corrected OverviewToggle.sh to use proper 'qs ipc -c overview call overview toggle' - Fixed startup commands from old 'qs' to 'qs -c overview' - Hyprland-Dots now uses corrected toggle script ## Qt6 Compatibility - Replaced Qt5Compat.GraphicalEffects with QtQuick.Effects - Removed OpacityMask in favor of Qt6-compatible clipping technique - All QML properly imports Qt6 modules ## Release Script - release.sh automatically uses copy.sh, inheriting all quickshell updates ## Testing - Verified on target systems (Fedora 43 VM, jak-nixos) - qs -c overview successfully launches overview config when shell.qml is removed - IPC toggle commands work correctly within Wayland sessions ## Files Modified - config/quickshell/overview/* (20 new files) - copy.sh (enhanced QS handling) - upgrade.sh (added quickshell to upgrade paths) --- copy.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'copy.sh') diff --git a/copy.sh b/copy.sh index a4c3e666..5b3d17cd 100755 --- a/copy.sh +++ b/copy.sh @@ -767,6 +767,13 @@ if command -v qs >/dev/null 2>&1; then cp -r "config/quickshell/" "$DIRPATH_QS" 2>&1 | tee -a "$LOG" fi else + # If default shell.qml exists, it blocks named config subdirectory detection + # Remove it to enable the overview config to be found + if [ -f "$DIRPATH_QS/shell.qml" ]; then + echo "${NOTE} - Removing default shell.qml to enable quickshell overview config detection" 2>&1 | tee -a "$LOG" + rm "$DIRPATH_QS/shell.qml" + fi + read -p "${CAT} Do you want to overwrite your existing ${YELLOW}quickshell${RESET} config? [y/N] " answer_qs case "$answer_qs" in [Yy]*) @@ -777,6 +784,8 @@ if command -v qs >/dev/null 2>&1; then cp -r "config/quickshell/" "$DIRPATH_QS" 2>&1 | tee -a "$LOG" if [ $? -eq 0 ]; then echo "${OK} - ${YELLOW}quickshell${RESET} overwritten successfully." + # Remove default shell.qml from new copy to enable overview detection + rm -f "$DIRPATH_QS/shell.qml" 2>&1 | tee -a "$LOG" else echo "${ERROR} - Failed to copy ${YELLOW}quickshell${RESET} config." exit 1 @@ -787,6 +796,26 @@ if command -v qs >/dev/null 2>&1; then ;; esac fi + + # Ensure overview subdirectory exists and is up to date + DIRPATH_OVERVIEW="$DIRPATH_QS/overview" + if [ ! -d "$DIRPATH_OVERVIEW" ] && [ -d "config/quickshell/overview" ]; then + echo "${INFO} - Copying quickshell overview config..." 2>&1 | tee -a "$LOG" + cp -r "config/quickshell/overview" "$DIRPATH_QS/" 2>&1 | tee -a "$LOG" + echo "${OK} - Quickshell overview config copied successfully" 2>&1 | tee -a "$LOG" + fi + + # Check for old quickshell startup commands and update them + HYPR_STARTUP="$HOME/.config/hypr/configs/Startup_Apps.conf" + if [ -f "$HYPR_STARTUP" ]; then + if grep -q '^exec-once = qs\s*$\|^exec-once = qs &' "$HYPR_STARTUP"; then + echo "${NOTE} - Found old Quickshell startup command, updating to new overview config..." 2>&1 | tee -a "$LOG" + # Replace old 'qs' or 'qs &' with new 'qs -c overview' + sed -i 's/^\(\s*\)exec-once = qs\s*$/\1exec-once = qs -c overview # Quickshell Overview/' "$HYPR_STARTUP" 2>&1 | tee -a "$LOG" + sed -i 's/^\(\s*\)exec-once = qs &$/\1exec-once = qs -c overview # Quickshell Overview/' "$HYPR_STARTUP" 2>&1 | tee -a "$LOG" + echo "${OK} - Updated Quickshell startup command to use overview config" 2>&1 | tee -a "$LOG" + fi + fi fi printf "\n%.0s" {1..1} -- cgit v1.2.3