update script

This commit is contained in:
2026-08-13 22:02:18 +02:00
parent 5bef759fae
commit 27fd5d5bf2
5 changed files with 171 additions and 40 deletions

View File

@@ -6,8 +6,10 @@ APP_DIR="$HOME/.local/share/applications"
SERVICE_MENU_DIR="$HOME/.local/share/kio/servicemenus"
LEGACY_SERVICE_MENU_DIR="$HOME/.local/share/kservices5/ServiceMenus"
# Check Python 3 and PySide6 dependency
# Check dependencies
echo "Checking dependencies..."
MISSING_OPTIONAL=()
if ! command -v python3 &>/dev/null; then
echo "Error: Python 3 is required but not found on your system."
exit 1
@@ -35,7 +37,65 @@ if ! python3 -c "import PySide6" &>/dev/null; then
fi
if ! python3 -c "import PySide6" &>/dev/null; then
echo "Warning: Could not automatically install PySide6. Please install 'PySide6' via pip or your distro package manager (e.g. python3-pyside6)."
echo "Warning: Could not automatically install PySide6. Please install 'PySide6' via pip or package manager."
fi
if ! command -v spectacle &>/dev/null; then
MISSING_OPTIONAL+=("spectacle (KDE screenshot capture tool)")
fi
if ! command -v ffmpeg &>/dev/null; then
MISSING_OPTIONAL+=("ffmpeg (Video notification thumbnail generator)")
fi
# Check Qt6 / KF6 Purpose plugin build requirements
HAS_QT6_MOC=false
for m in /usr/lib/qt6/moc /usr/lib/qt6/libexec/moc /usr/libexec/qt6/moc /usr/lib64/qt6/libexec/moc /usr/lib/qt6/bin/moc moc-qt6 moc; do
if [ -x "$m" ] || command -v "$m" &>/dev/null; then
bin_path="$m"
[ -x "$m" ] || bin_path="$(command -v "$m")"
ver="$("$bin_path" -v 2>&1 || true)"
if [[ "$ver" =~ moc\ 6\. ]] || [[ "$ver" =~ Qt\ 6\. ]] || [[ "$ver" =~ 6\.[0-9]+ ]]; then
HAS_QT6_MOC=true
break
fi
fi
done
HAS_PURPOSE_HDR=false
for h in /usr/include/KF6/Purpose /usr/include/purpose; do
if [ -d "$h" ]; then
HAS_PURPOSE_HDR=true
break
fi
done
if [ "$HAS_QT6_MOC" = false ] || [ "$HAS_PURPOSE_HDR" = false ]; then
MISSING_OPTIONAL+=("qt6-base & kf6-purpose (KDE Gwenview Share Menu integration)")
fi
if [ ${#MISSING_OPTIONAL[@]} -gt 0 ]; then
echo ""
echo "--------------------------------------------------------"
echo " Notice: Optional dependencies missing:"
for dep in "${MISSING_OPTIONAL[@]}"; do
echo " - $dep"
done
echo ""
echo " To install missing dependencies:"
if command -v pacman &>/dev/null; then
echo " Arch Linux: sudo pacman -S python-pyside6 spectacle ffmpeg qt6-base kf6-purpose kf6-kcoreaddons"
elif command -v dnf &>/dev/null; then
echo " Fedora: sudo dnf install python3-pyside6 spectacle ffmpeg qt6-qtbase-devel kf6-purpose-devel kf6-kcoreaddons-devel"
elif command -v apt-get &>/dev/null; then
echo " Debian/Ubuntu: sudo apt install python3-pyside6 spectacle ffmpeg qt6-base-dev libkf6purpose-dev libkf6kcoreaddons-dev"
else
echo " Arch Linux: sudo pacman -S python-pyside6 spectacle ffmpeg qt6-base kf6-purpose kf6-kcoreaddons"
echo " Fedora: sudo dnf install python3-pyside6 spectacle ffmpeg qt6-qtbase-devel kf6-purpose-devel kf6-kcoreaddons-devel"
echo " Debian/Ubuntu: sudo apt install python3-pyside6 spectacle ffmpeg qt6-base-dev libkf6purpose-dev libkf6kcoreaddons-dev"
fi
echo "--------------------------------------------------------"
echo ""
fi
# Create necessary directories
@@ -139,9 +199,12 @@ if [ -f "purpose_plugin/build_plugin.sh" ]; then
cp "purpose_plugin/f0ckmpurposeplugin.so" "$PURPOSE_USER_DIR64/f0ckmpurposeplugin.so"
cp "purpose_plugin/f0ckmpurposeplugin.so" "$PURPOSE_USER_DIR32/f0ckmpurposeplugin.so"
if [ -w "/usr/lib64/qt6/plugins/kf6/purpose" ]; then
if [ -w "/usr/lib/qt6/plugins/kf6/purpose" ]; then
cp "purpose_plugin/f0ckmpurposeplugin.so" "/usr/lib/qt6/plugins/kf6/purpose/f0ckmpurposeplugin.so" &>/dev/null || true
elif [ -w "/usr/lib64/qt6/plugins/kf6/purpose" ]; then
cp "purpose_plugin/f0ckmpurposeplugin.so" "/usr/lib64/qt6/plugins/kf6/purpose/f0ckmpurposeplugin.so" &>/dev/null || true
elif sudo -n true 2>/dev/null; then
sudo cp "purpose_plugin/f0ckmpurposeplugin.so" "/usr/lib/qt6/plugins/kf6/purpose/f0ckmpurposeplugin.so" &>/dev/null || true
sudo cp "purpose_plugin/f0ckmpurposeplugin.so" "/usr/lib64/qt6/plugins/kf6/purpose/f0ckmpurposeplugin.so" &>/dev/null || true
fi