From 3acedcafddc1f7f3aaea18088645673a2d9d34e4 Mon Sep 17 00:00:00 2001 From: webfarben Date: Mon, 23 Feb 2026 12:13:29 +0100 Subject: [PATCH] =?UTF-8?q?Linux-Installation=20mit=20Desktop-Integration?= =?UTF-8?q?=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - install.sh: Automatisches Installations-Script • Prüft und installiert Tkinter automatisch • Erstellt Virtual Environment • Desktop-Verknüpfung im Anwendungsmenü • Launcher-Command: pdf-to-ics - uninstall.sh: Saubere Deinstallation • Entfernt alle Dateien • Optional: Benutzer-Konfiguration behalten - INSTALL.md: Technische Installations-Dokumentation - WEITERGABE.md: Benutzerfreundliche Schnellstart-Anleitung Die Anwendung kann jetzt als fertiges Paket weitergegeben werden! --- INSTALL.md | 159 ++++++++++++++++++++++++++++++++++++++++++++ WEITERGABE.md | 88 +++++++++++++++++++++++++ install.sh | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++ uninstall.sh | 85 ++++++++++++++++++++++++ 4 files changed, 510 insertions(+) create mode 100644 INSTALL.md create mode 100644 WEITERGABE.md create mode 100755 install.sh create mode 100755 uninstall.sh diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..050a18c --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,159 @@ +# 📦 Installation - PDF zu ICS Konverter + +Eine einfache Installation für Linux-Systeme, die die Anwendung in Ihr Anwendungsmenü integriert. + +## 🚀 Schnell-Installation + +```bash +chmod +x install.sh +./install.sh +``` + +Das war's! Die Anwendung erscheint nun in Ihrem Anwendungsmenü unter "PDF zu ICS Konverter". + +## 📋 Was macht das Installations-Script? + +1. ✅ **Prüft Python-Installation** (Python 3.6+) +2. ✅ **Installiert Tkinter** falls nötig (mit sudo-Berechtigung) +3. ✅ **Erstellt Installationsverzeichnis** in `~/.local/share/pdf-to-ics` +4. ✅ **Kopiert alle Dateien** ins Installationsverzeichnis +5. ✅ **Erstellt Python Virtual Environment** mit allen Abhängigkeiten +6. ✅ **Erstellt Desktop-Verknüpfung** für das Anwendungsmenü +7. ✅ **Erstellt Launcher-Script** in `~/.local/bin/pdf-to-ics` + +## 🎯 Nach der Installation + +Die Anwendung starten Sie auf drei Arten: + +### 1. Über das Anwendungsmenü (Empfohlen) +- Öffnen Sie Ihr Anwendungsmenü (z.B. GNOME Activities, KDE Application Launcher) +- Suchen Sie nach "PDF zu ICS" +- Klicken Sie auf das Icon + +### 2. Über die Kommandozeile +```bash +pdf-to-ics +``` + +### 3. Über den vollständigen Pfad +```bash +~/.local/bin/pdf-to-ics +``` + +## 🔧 Systemanforderungen + +### Unterstützte Distributionen: +- ✅ Ubuntu / Debian (automatische Tkinter-Installation) +- ✅ Fedora / RHEL (automatische Tkinter-Installation) +- ✅ Arch Linux (automatische Tkinter-Installation) +- ✅ Andere Distributionen (manuelle Tkinter-Installation erforderlich) + +### Voraussetzungen: +- Python 3.6 oder höher +- `sudo`-Berechtigung (für Tkinter-Installation) +- Etwa 50 MB Festplattenspeicher + +## 📁 Installations-Pfade + +``` +~/.local/share/pdf-to-ics/ # Hauptinstallation +~/.local/bin/pdf-to-ics # Launcher-Script +~/.local/share/applications/ # Desktop-Verknüpfung +~/.pdf_to_ics_config.json # Benutzer-Einstellungen +``` + +## 🗑️ Deinstallation + +```bash +~/.local/share/pdf-to-ics/uninstall.sh +``` + +Das Deinstallations-Script entfernt: +- ✅ Installationsverzeichnis +- ✅ Desktop-Verknüpfung +- ✅ Launcher-Script +- ⚠️ Konfigurationsdatei (optional) + +## ⚠️ Fehlerbehebung + +### "Tkinter ist nicht installiert" + +**Ubuntu/Debian:** +```bash +sudo apt-get install python3-tk +``` + +**Fedora:** +```bash +sudo dnf install python3-tkinter +``` + +**Arch Linux:** +```bash +sudo pacman -S tk +``` + +### "pdf-to-ics: Befehl nicht gefunden" + +Ihr `~/.local/bin` ist nicht im PATH. Fügen Sie zu `~/.bashrc` hinzu: + +```bash +export PATH="$HOME/.local/bin:$PATH" +``` + +Dann Terminal neu laden: +```bash +source ~/.bashrc +``` + +### Anwendung erscheint nicht im Menü + +Aktualisieren Sie die Desktop-Datenbank: +```bash +update-desktop-database ~/.local/share/applications +``` + +Oder melden Sie sich ab und wieder an. + +## 🔄 Update + +Um auf eine neue Version zu aktualisieren: + +```bash +# 1. Deinstallieren +~/.local/share/pdf-to-ics/uninstall.sh + +# 2. Neue Version herunterladen +cd /pfad/zur/neuen/version + +# 3. Neu installieren +./install.sh +``` + +## 💡 Entwickler-Modus + +Wenn Sie an der Anwendung entwickeln möchten, nutzen Sie stattdessen: + +```bash +./start_gui.sh # Startet aus dem aktuellen Verzeichnis +``` + +Die Installation ist nur für End-Benutzer gedacht. + +## 🐧 Andere Betriebssysteme + +- **Windows:** Nutzen Sie `start_gui.cmd` (keine Installation nötig) +- **macOS:** Nutzen Sie `start_gui.sh` (keine Installation nötig) + +## 📞 Support + +Bei Problemen während der Installation: + +1. Prüfen Sie die Systemanforderungen +2. Lesen Sie die Fehlermeldungen sorgfältig +3. Konsultieren Sie die README.md +4. Öffnen Sie ein Issue im Repository + +--- + +**Installation erfolgreich?** Viel Spaß beim Konvertieren Ihrer Dienstpläne! 📅✨ diff --git a/WEITERGABE.md b/WEITERGABE.md new file mode 100644 index 0000000..fceeea2 --- /dev/null +++ b/WEITERGABE.md @@ -0,0 +1,88 @@ +# 📦 PDF zu ICS Konverter - Weitergabe-Paket + +Dieses Paket enthält alles, was Sie brauchen, um Dienstplan-PDFs in Kalender-Dateien (ICS) zu konvertieren. + +## ⚡ Schnellstart für Nicht-Technische Nutzer + +### 1. Installation + +1. Öffnen Sie diesen Ordner im Dateimanager +2. Rechtsklick auf `install.sh` +3. Wählen Sie "Als Programm ausführen" oder "Mit Terminal öffnen" +4. Folgen Sie den Anweisungen auf dem Bildschirm + +**Alternativ:** Öffnen Sie ein Terminal in diesem Ordner und führen Sie aus: +```bash +./install.sh +``` + +### 2. Anwendung starten + +Nach der Installation finden Sie "PDF zu ICS Konverter" in Ihrem Anwendungsmenü: + +- **GNOME:** Drücken Sie die Super-Taste, tippen Sie "PDF" +- **KDE:** Klicken Sie auf das Anwendungsmenü, suchen Sie "PDF zu ICS" +- **XFCE/Andere:** Im Anwendungsmenü unter "Büro" oder "Dienstprogramme" + +### 3. PDFs konvertieren + +1. Klicken Sie auf "➕ PDF hinzufügen" oder ziehen Sie PDF-Dateien in die Liste +2. Wählen Sie optional ein Ausgabe-Verzeichnis +3. Klicken Sie auf "📄 ICS Datei erstellen" +4. Fertig! Importieren Sie die ICS-Dateien in Ihren Kalender + +## 📋 Was wird installiert? + +- Die Anwendung wird in Ihrem Home-Verzeichnis installiert (keine Systemänderungen) +- Ein Eintrag im Anwendungsmenü wird erstellt +- Alle benötigten Python-Bibliotheken werden automatisch heruntergeladen + +## 🗑️ Deinstallation + +Falls Sie die Anwendung wieder entfernen möchten: + +1. Öffnen Sie ein Terminal +2. Führen Sie aus: + ```bash + ~/.local/share/pdf-to-ics/uninstall.sh + ``` + +## 💡 Für technisch versierte Nutzer + +Siehe [INSTALL.md](INSTALL.md) für detaillierte Informations- und [README.md](README.md) für die vollständige Dokumentation. + +## ⚙️ Systemvoraussetzungen + +- Linux (Ubuntu, Fedora, Debian, Arch, etc.) +- Python 3.6 oder neuer (meist vorinstalliert) +- Etwa 50 MB freier Speicherplatz +- Internetzugang für die Installation + +## ❓ Probleme? + +### Die Installation schlägt fehl + +Öffnen Sie ein Terminal und führen Sie aus: +```bash +python3 --version +``` + +Falls "Befehl nicht gefunden" erscheint, installieren Sie Python: +```bash +sudo apt install python3 python3-pip python3-venv +``` + +### Die Anwendung startet nicht + +Prüfen Sie, ob Tkinter installiert ist: +```bash +sudo apt install python3-tk +``` + +## 📞 Weitere Hilfe + +Lesen Sie die vollständige Dokumentation in [README.md](README.md) oder [INSTALL.md](INSTALL.md). + +--- + +Viel Erfolg beim Konvertieren Ihrer Dienstpläne! 📅 diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..a741a65 --- /dev/null +++ b/install.sh @@ -0,0 +1,178 @@ +#!/bin/bash + +############################################################################### +# PDF zu ICS Konverter - Installations-Script für Linux +# Installiert die Anwendung systemweit mit Desktop-Integration +############################################################################### + +set -e # Beende bei Fehlern + +# Farben für bessere Ausgabe +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# Installation-Pfade +INSTALL_DIR="$HOME/.local/share/pdf-to-ics" +DESKTOP_FILE="$HOME/.local/share/applications/pdf-to-ics.desktop" +BIN_DIR="$HOME/.local/bin" +LAUNCHER="$BIN_DIR/pdf-to-ics" + +echo -e "${BLUE}╔═══════════════════════════════════════════════════════════╗${NC}" +echo -e "${BLUE}║ PDF zu ICS Konverter - Installations-Assistent ║${NC}" +echo -e "${BLUE}╚═══════════════════════════════════════════════════════════╝${NC}" +echo "" + +# Funktion für Fortschrittsanzeige +print_step() { + echo -e "${GREEN}➜${NC} $1" +} + +print_warning() { + echo -e "${YELLOW}⚠${NC} $1" +} + +print_error() { + echo -e "${RED}✗${NC} $1" +} + +print_success() { + echo -e "${GREEN}✓${NC} $1" +} + +# Prüfe Python-Installation +print_step "Prüfe Python-Installation..." +if ! command -v python3 &> /dev/null; then + print_error "Python 3 ist nicht installiert!" + echo "Bitte installieren Sie Python 3:" + echo " sudo apt install python3 python3-pip python3-venv" + exit 1 +fi +PYTHON_VERSION=$(python3 --version) +print_success "Python gefunden: $PYTHON_VERSION" + +# Prüfe und installiere Tkinter wenn nötig +print_step "Prüfe Tkinter-Installation..." +if ! python3 -c "import tkinter" 2>/dev/null; then + print_warning "Tkinter ist nicht installiert. Installation wird versucht..." + + # Erkenne Distribution + if [ -f /etc/debian_version ]; then + echo "Debian/Ubuntu erkannt. Installiere python3-tk..." + if command -v sudo &> /dev/null; then + sudo apt-get update && sudo apt-get install -y python3-tk + else + print_error "sudo nicht verfügbar. Bitte installieren Sie python3-tk manuell:" + echo " apt-get install python3-tk" + exit 1 + fi + elif [ -f /etc/fedora-release ]; then + echo "Fedora erkannt. Installiere python3-tkinter..." + sudo dnf install -y python3-tkinter + elif [ -f /etc/arch-release ]; then + echo "Arch Linux erkannt. Installiere tk..." + sudo pacman -S --noconfirm tk + else + print_warning "Distribution nicht erkannt. Bitte installieren Sie Tkinter manuell." + echo "Möchten Sie trotzdem fortfahren? (y/n)" + read -r response + if [[ ! "$response" =~ ^[Yy]$ ]]; then + exit 1 + fi + fi + print_success "Tkinter installiert" +else + print_success "Tkinter ist bereits installiert" +fi + +# Erstelle Installationsverzeichnis +print_step "Erstelle Installationsverzeichnis..." +mkdir -p "$INSTALL_DIR" +mkdir -p "$BIN_DIR" +mkdir -p "$(dirname "$DESKTOP_FILE")" + +# Kopiere Dateien +print_step "Kopiere Anwendungsdateien..." +cp -r *.py *.md *.sh *.cmd .gitignore "$INSTALL_DIR/" 2>/dev/null || true +print_success "Dateien kopiert nach $INSTALL_DIR" + +# Erstelle Python Virtual Environment +print_step "Erstelle Python-Umgebung..." +cd "$INSTALL_DIR" +python3 -m venv .venv --upgrade-deps +print_success "Virtual Environment erstellt" + +# Installiere Python-Abhängigkeiten +print_step "Installiere Python-Abhängigkeiten..." +.venv/bin/pip install -q --upgrade pip +.venv/bin/pip install -q pdfplumber icalendar pypdf2 pytz +.venv/bin/pip install -q tkinterdnd2 2>/dev/null || print_warning "tkinterdnd2 optional nicht installiert (kein Problem)" +print_success "Abhängigkeiten installiert" + +# Erstelle Launcher-Script +print_step "Erstelle Launcher-Script..." +cat > "$LAUNCHER" << 'EOF' +#!/bin/bash +# PDF zu ICS Konverter Launcher +INSTALL_DIR="$HOME/.local/share/pdf-to-ics" +cd "$INSTALL_DIR" +exec .venv/bin/python gui.py +EOF +chmod +x "$LAUNCHER" +print_success "Launcher erstellt: $LAUNCHER" + +# Erstelle Desktop-Verknüpfung +print_step "Erstelle Desktop-Verknüpfung..." +cat > "$DESKTOP_FILE" << EOF +[Desktop Entry] +Version=1.0 +Type=Application +Name=PDF zu ICS Konverter +Comment=Konvertiere Dienstplan-PDFs zu iCalendar-Dateien +Exec=$LAUNCHER +Icon=calendar +Terminal=false +Categories=Office;Utility; +Keywords=PDF;ICS;Kalender;Dienstplan; +StartupNotify=true +EOF +chmod +x "$DESKTOP_FILE" +print_success "Desktop-Verknüpfung erstellt" + +# Desktop-Datenbank aktualisieren +if command -v update-desktop-database &> /dev/null; then + update-desktop-database "$HOME/.local/share/applications" 2>/dev/null || true +fi + +# Prüfe ob ~/.local/bin im PATH ist +if [[ ":$PATH:" != *":$BIN_DIR:"* ]]; then + print_warning "~/.local/bin ist nicht im PATH!" + echo "Fügen Sie folgende Zeile zu ~/.bashrc oder ~/.zshrc hinzu:" + echo "" + echo " export PATH=\"\$HOME/.local/bin:\$PATH\"" + echo "" +fi + +# Abschluss +echo "" +echo -e "${GREEN}╔═══════════════════════════════════════════════════════════╗${NC}" +echo -e "${GREEN}║ Installation erfolgreich abgeschlossen! ║${NC}" +echo -e "${GREEN}╚═══════════════════════════════════════════════════════════╝${NC}" +echo "" +print_success "Die Anwendung wurde installiert!" +echo "" +echo "Sie können die Anwendung nun starten:" +echo "" +echo " 1. ${BLUE}Über das Anwendungsmenü${NC} (suchen Sie nach 'PDF zu ICS')" +echo " 2. ${BLUE}Über die Kommandozeile:${NC} pdf-to-ics" +echo "" +echo "Installation Details:" +echo " • Installationsverzeichnis: $INSTALL_DIR" +echo " • Launcher: $LAUNCHER" +echo " • Desktop-Verknüpfung: $DESKTOP_FILE" +echo "" +echo "Zum Deinstallieren führen Sie aus:" +echo " bash $INSTALL_DIR/uninstall.sh" +echo "" diff --git a/uninstall.sh b/uninstall.sh new file mode 100755 index 0000000..b3a0f2f --- /dev/null +++ b/uninstall.sh @@ -0,0 +1,85 @@ +#!/bin/bash + +############################################################################### +# PDF zu ICS Konverter - Deinstallations-Script +############################################################################### + +set -e + +# Farben +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' + +INSTALL_DIR="$HOME/.local/share/pdf-to-ics" +DESKTOP_FILE="$HOME/.local/share/applications/pdf-to-ics.desktop" +LAUNCHER="$HOME/.local/bin/pdf-to-ics" +CONFIG_FILE="$HOME/.pdf_to_ics_config.json" + +echo -e "${YELLOW}╔═══════════════════════════════════════════════════════════╗${NC}" +echo -e "${YELLOW}║ PDF zu ICS Konverter - Deinstallations-Assistent ║${NC}" +echo -e "${YELLOW}╚═══════════════════════════════════════════════════════════╝${NC}" +echo "" + +echo "Folgende Dateien und Verzeichnisse werden entfernt:" +echo " • $INSTALL_DIR" +echo " • $DESKTOP_FILE" +echo " • $LAUNCHER" +echo "" +echo "Konfigurationsdatei behalten? (sie enthält Ihre letzten Verzeichnisse)" +echo " • $CONFIG_FILE" +echo "" +echo -e "${RED}Möchten Sie fortfahren? (y/n)${NC}" +read -r response + +if [[ ! "$response" =~ ^[Yy]$ ]]; then + echo "Deinstallation abgebrochen." + exit 0 +fi + +# Lösche Dateien +echo "" +echo "Entferne Installationsdateien..." + +if [ -d "$INSTALL_DIR" ]; then + rm -rf "$INSTALL_DIR" + echo -e "${GREEN}✓${NC} Installationsverzeichnis entfernt" +fi + +if [ -f "$DESKTOP_FILE" ]; then + rm -f "$DESKTOP_FILE" + echo -e "${GREEN}✓${NC} Desktop-Verknüpfung entfernt" +fi + +if [ -f "$LAUNCHER" ]; then + rm -f "$LAUNCHER" + echo -e "${GREEN}✓${NC} Launcher entfernt" +fi + +# Konfigurationsdatei nur entfernen wenn explizit gewünscht +if [ -f "$CONFIG_FILE" ]; then + echo "" + echo -e "Konfigurationsdatei $CONFIG_FILE gefunden." + echo -e "${YELLOW}Auch entfernen? (y/n)${NC}" + read -r response + if [[ "$response" =~ ^[Yy]$ ]]; then + rm -f "$CONFIG_FILE" + echo -e "${GREEN}✓${NC} Konfigurationsdatei entfernt" + else + echo -e "${GREEN}✓${NC} Konfigurationsdatei behalten" + fi +fi + +# Desktop-Datenbank aktualisieren +if command -v update-desktop-database &> /dev/null; then + update-desktop-database "$HOME/.local/share/applications" 2>/dev/null || true +fi + +echo "" +echo -e "${GREEN}╔═══════════════════════════════════════════════════════════╗${NC}" +echo -e "${GREEN}║ Deinstillation erfolgreich abgeschlossen! ║${NC}" +echo -e "${GREEN}╚═══════════════════════════════════════════════════════════╝${NC}" +echo "" +echo "PDF zu ICS Konverter wurde von Ihrem System entfernt." +echo ""