🪝 Documentatie

Complete gids voor Hauswerk-plugins: structuur, gebruik, API-referentie en meer.

📘 Introductie

Hauswerk is een open-source GUI-applicatie, gebouwd met Python (PyQt6), waarmee je op modulaire wijze video- en audiobewerkingen kunt uitvoeren via plugins. Zie het als een digitale gereedschapskist: de hoofdinterface bestaat uit verschillende tabbladen, elk met een specifieke tool.

De applicatie biedt standaard een aantal ingebouwde plugins aan, maar gebruikers kunnen ook zelf plugins toevoegen of community-plugins installeren via de ingebouwde plugin-browser. Er is daarnaast een Dashboard-tabblad voor overzicht en een Plugin Store-tabblad om nieuwe tools te ontdekken en te installeren.

🧩 Flexibiliteit als kernidee

Het kernidee van Hauswerk is uitbreidbaarheid: elke nieuwe functie wordt toegevoegd in de vorm van een plugin.

Een plugin is simpelweg een Python-module met een Qt-widget (QWidget) die zijn eigen gebruikersinterface bevat. Hauswerk detecteert en laadt deze widgets dynamisch, waarna ze geïntegreerd worden in de interface – bijvoorbeeld als een nieuw tabblad.

Gebruikers kunnen hun eigen plugins ontwikkelen, plugins delen of bestaande tools aanpassen aan hun behoeften.

🔧 Wat Hauswerk intern aanbiedt

Plugins in Hauswerk kunnen gebruikmaken van verschillende centrale voorzieningen:

  • SettingsManager – voor het lezen en schrijven van instellingen in een centraal JSON-bestand (~/.hauswerk_settings.json).
  • Style Manager – voor het toepassen van licht/donker thema’s en consistente styling.
  • Preset-systeem – voor het opslaan en laden van plugin-specifieke instellingen in JSON-formaat.
  • FFmpegWorker & ThumbnailWorker – voor het uitvoeren van zware taken in achtergrondthreads (zoals videoprocessing of thumbnailgeneratie), zonder dat de GUI blokkeert.

📚 Wat leer je in deze gids?

Je leert:

  • hoe je Hauswerk-plugins bouwt
  • hoe je ze integreert in de GUI
  • hoe je presets, thema’s en workers inzet
  • hoe je een ZIP maakt met correcte structuur en metadata
  • hoe je uploadt naar de Plugin Store
  • hoe je errors en edge cases afvangt

Deze documentatie is geschikt voor gebruikers én ontwikkelaars die Hauswerk willen uitbreiden of beter begrijpen.

📦 Wat bevat Supabase?

  • Één .py-bestand met een QWidget-subklasse
  • plugin.json met metadata (entry, class, tags, etc.)
  • Optioneel: .svg-icoon en preview.png
  • SHA256-checksum en automatische validatie
  • Downloadbaar .hauswerk-plugin.zip

🔍 ZIP Structuur

{
  "name": "Collage",
  "entry": "collage.py",
  "class": "CollageWidget",
  "tags": ["video", "overlay"],
  "verified": true,
  "slug": "collage",
  "icon": "collage.svg",
  "preview": "collage.png",
  "download_url": "https://.../collage.hauswerk-plugin.zip"
}

🚀 Quick Start

Volg deze stappen om snel een plugin te installeren:

  1. Open Hauswerk en ga naar de Plugin Store.
  2. Zoek naar Collage en klik op Installeren.
  3. Herstart de applicatie; de plugin verschijnt in je menu.

Voor ontwikkeling gebruik je:

hauswerk plugin new --name MijnPlugin

🛠️ API Referentie

upload_plugin_to_supabase.py

CLI-tool voor upload:

usage: upload_plugin_to_supabase.py --bucket BUCKET --file ZIPFILE

Parameters:

  • --bucket: naam van de Supabase-bucket
  • --file: pad naar de plugin ZIP

plugin_browser.js

Belangrijke functies:

  • fetchPlugins(): haalt lijst op via /rest/v1/plugins
  • renderPlugin(item): maakt DOM-elementen voor elke plugin

⚠️ Troubleshooting

Checksum mismatch: controleer of de ZIP niet beschadigd is.

Network errors: zorg voor internettoegang en correcte CORS-configuratie.

🤝 Contributie

Wil je bijdragen? Fork de repo en maak een pull request volgens onze CONTRIBUTING.md.

Gebruik issue-templates voor bugs en feature requests.

📘 Ga naar Deel 2 van de documentatie

📜 Licentie & Support

Dit project valt onder de MIT-licentie. Zie LICENSE voor details.

Voor hulp en vragen, bezoek GitHub of stuur een e-mail naar support@hauswerk.app.