🪝 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 eenQWidget-subklasse plugin.jsonmet metadata (entry, class, tags, etc.)- Optioneel:
.svg-icoon enpreview.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:
- Open Hauswerk en ga naar de Plugin Store.
- Zoek naar Collage en klik op Installeren.
- 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/pluginsrenderPlugin(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.
📜 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.