add purposeplugin for kde

This commit is contained in:
2026-08-13 20:08:24 +02:00
parent acc859919e
commit 5bef759fae
8 changed files with 244 additions and 3 deletions

View File

@@ -128,7 +128,41 @@ chmod +x "$SERVICE_MENU_DIR/f0ckm-uploader-servicemenu.desktop"
sed "s|__EXEC_PATH__|$INSTALL_DIR/f0ckm-uploader-gui --upload|g" f0ckm-uploader-servicemenu.desktop > "$LEGACY_SERVICE_MENU_DIR/f0ckm-uploader-servicemenu.desktop"
chmod +x "$LEGACY_SERVICE_MENU_DIR/f0ckm-uploader-servicemenu.desktop"
# 5. Migrate config to config.json if not present
# 5. Build and install KDE Purpose plugin (for Gwenview / KDE Share menu)
if [ -f "purpose_plugin/build_plugin.sh" ]; then
echo "Building KDE Purpose plugin for Gwenview Share Menu..."
bash purpose_plugin/build_plugin.sh purpose_plugin &> /dev/null || true
if [ -f "purpose_plugin/f0ckmpurposeplugin.so" ]; then
PURPOSE_USER_DIR64="$HOME/.local/lib64/qt6/plugins/kf6/purpose"
PURPOSE_USER_DIR32="$HOME/.local/lib/qt6/plugins/kf6/purpose"
mkdir -p "$PURPOSE_USER_DIR64" "$PURPOSE_USER_DIR32"
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
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/lib64/qt6/plugins/kf6/purpose/f0ckmpurposeplugin.so" &>/dev/null || true
fi
ENV_DIR="$HOME/.config/environment.d"
mkdir -p "$ENV_DIR"
cat << 'ENVCONF' > "$ENV_DIR/10-qt-plugins.conf"
QT_PLUGIN_PATH="${HOME}/.local/lib64/qt6/plugins:${HOME}/.local/lib/qt6/plugins:/usr/lib64/qt6/plugins:/usr/lib/qt6/plugins"
ENVCONF
PLASMA_ENV_DIR="$HOME/.config/plasma-workspace/env"
mkdir -p "$PLASMA_ENV_DIR"
cat << 'PLASMAENV' > "$PLASMA_ENV_DIR/10-qt-plugins.sh"
export QT_PLUGIN_PATH="${HOME}/.local/lib64/qt6/plugins:${HOME}/.local/lib/qt6/plugins:${QT_PLUGIN_PATH}:/usr/lib64/qt6/plugins:/usr/lib/qt6/plugins"
PLASMAENV
chmod +x "$PLASMA_ENV_DIR/10-qt-plugins.sh"
echo " -> Gwenview / KDE Share Menu plugin installed (Upload to f0ckm)"
fi
fi
# 6. Migrate config to config.json if not present
CONFIG_DIR="$HOME/.config/f0ckm-uploader"
CONFIG_FILE="$CONFIG_DIR/config.json"
if [ ! -f "$CONFIG_FILE" ]; then
@@ -149,7 +183,7 @@ EOF
echo "Initial configuration created at $CONFIG_FILE"
fi
# 6. Ensure autostart state matches config.json
# 7. Ensure autostart state matches config.json
python3 -c '
import json, os
try:
@@ -192,6 +226,7 @@ echo " f0ckm Uploader Installation Complete!"
echo "========================================================"
echo " -> Executable installed: $INSTALL_DIR/f0ckm-uploader-gui"
echo " -> Dolphin context menu registered (Right-click file -> Actions -> Upload to f0ckm)"
echo " -> Gwenview / KDE Share menu integration enabled (Upload to f0ckm)"
echo " -> Spectacle screenshot export integration enabled"
echo " -> Browser extension helper API ready on http://127.0.0.1:18739"
echo "========================================================"