🌐 Beschikbare talen: Nederlands | English | Deutsch | /Français | 中文
Welkom bij de Hauswerk Plugins repository — de officiële opslagplek voor uitbreidbare tools binnen de Hauswerk GUI.
Deze repository bevat kant-en-klare plugins als .zip bestanden. De bestanden plugins.json en themes.json voeden de Plugin Store en Theme Shop binnen de Hauswerk-app.
| Plugin | Beschrijving | Bestand |
|---|---|---|
| Collage | Maakt een video-collage van clips | collage.zip |
| Clipper | Genereert random clips uit een video | clipper.zip |
| Stretcher | Vertraagt video's met of zonder audio | stretcher.zip |
| Concat | Voegt video's samen | concat.zip |
| Psychotisch | Creeër gekke EBM-style montage | psychotisch.zip |
| AudioFadeBPM | Batch audio extractie + crossfade | audiofadebpm.zip |
| UIBuilder | Visuele UI-pluginbouwer | uibuilder.zip |
Naast plugins vind je in deze repo ook thema's voor de Hauswerk-interface. Deze zijn te bekijken in de Theme Shop.
Alle plugins bevatten minimaal:
- Één
.pybestand met eenQWidgetsubclass - Een
plugin.jsonbestand met metadata - Een
.svgicoon (optioneel) - (optioneel)
preview.png(wordt getoond in GUI) - (optioneel)
tags: lijst met trefwoorden zoals"video","audio","glitch"
Het bestand plugins.json bevat een lijst met alle beschikbare plugins in dit formaat:
{
"name": "Collage",
"description": "Collage plugin voor Hauswerk.",
"zip_url": "https://github.com/michligtenberg2/hauswerk-plugins/raw/main/collage.zip",
"tags": ["video", "overlay"],
"verified": true
}De Hauswerk-app gebruikt dit om plugins weer te geven, te filteren en te installeren via de ingebouwde Plugin Store.
Er zijn twee manieren om plugins aan te leveren voor Hauswerk:
╔════════════════════════════════════════════════════╗
║ 📂 Pluginstructuur en beoordeling ║
╠══════════════╦═════════════════════════════════════╣
║ /unofficial/ ║ Open voor iedereen (geen keuring) ║
║ /official/ ║ Alleen via pull request en review ║
╚══════════════╩═════════════════════════════════════╝
- Voeg je
.ziptoe aan de map/unofficial/ - De plugin wordt automatisch:
- ✅ gevalideerd (controle op geldige
plugin.json) - ✅ toegevoegd aan
unofficial/plugins.json - ✅ getagd, geteld en gepreviewd
- ✅ gevalideerd (controle op geldige
- Geen toestemming nodig
- Handig voor experimenten of externe stores
- Maak een pull request met:
- Je
.zipbestand in/official/ - Toevoeging aan hoofd
plugins.json
- Je
- De beheerder keurt dit handmatig goed
- Wordt dan onderdeel van de officiële store met
verified: true
| Methode | Wie mag het? | Zichtbaar in app? | Review nodig? |
|---|---|---|---|
Upload naar /unofficial/ |
Iedereen | ✅ via unofficial store | ❌ |
PR naar /official/ |
Contributors | ✅ via officiële plugin tab | ✅ |
ℹ️ unofficial/plugins.json wordt automatisch gegenereerd én geüpdatet bij elke wijziging in /unofficial/, inclusief tags en previews.
Je bent vrij om je eigen plugin store te maken met een eigen plugins.json. De Hauswerk-app ondersteunt meerdere bronnen:
[
"https://github.com/michligtenberg2/hauswerk-plugins/raw/main/plugins.json",
"https://jouwdomein.nl/mijnstore/plugins.json",
"https://github.com/michligtenberg2/hauswerk-plugins/raw/main/unofficial/plugins.json"
]Zo kunnen er officiële én experimentele stores tegelijk actief zijn in de interface.
-
Maak een nieuwe submap met daarin:
jouwplugin.pyplugin.json- (optioneel)
icoon.svg - (optioneel)
preview.png
-
Zip de hele pluginmap:
zip -r jouwplugin.zip jouwplugin/- Voeg de
.ziptoe aan de map/unofficial/ - Klaar! De plugin wordt automatisch zichtbaar in
unofficial/plugins.json - Wil je officiële opname? Dien dan een PR in naar
/official/
Een minimale plugin bevat de volgende bestanden:
myplugin/
├─ main.py # bevat class PluginWidget(QWidget)
├─ metadata.json # naam, slug, versie, beschrijving, auteur
├─ icon.png # optioneel pictogram
└─ preview.jpg # optionele screenshot
metadata.json wordt gebruikt door de Plugin Store om details en tags te tonen.
Voorbeeld:
{
"name": "MijnPlugin",
"entry": "mijnplugin.py",
"class": "MijnPluginWidget",
"icon": "mijnplugin.svg",
"tags": ["video", "overlay"],
"verified": false
}Deze repository gebruikt GitHub Actions om:
- Te controleren of
plugins.jsongeldig JSON is - Elke
.zipte controleren op aanwezigheid vanplugin.json - Een nieuwe
unofficial/plugins.jsonte genereren bij elke nieuwe plugin-upload - Automatisch tags, previews en plugin count bij te werken
- Mogelijkheid om dagelijks een
store badgete refreshen
Zie .github/workflows/validate_plugins.yml voor de validatieregels.
Voor vragen, bugs of ideeën: open een issue op github.com/michligtenberg2/Hauswerk.
Veel plezier met bouwen! 🛠️