jzland docs
Integrazioni

Integrazioni

Cosa collega i widget ai servizi: le integrazioni del cervello e i connettori dichiarativi.

Un'integrazione è il pezzo che porta ai widget i dati di un servizio (o del computer) e esegue le azioni che fai con un tap. Ogni integrazione ha un manifest che dice di cosa ha bisogno e cosa può fare: quali widget alimenta, se serve il computer, su quali sistemi gira, a quali domini si collega.

IntegrazioneWidgetServeChiavi
Discorddiscordil computer (usa il socket locale di Discord)client id e secret di una tua applicazione
Chatchatil computer (apre i link)nessuna
Linearlinear_fissate, linear_todoil computerchiave API personale
Batteriebatterieil computer (Bluetooth e sistema)nessuna
Connettorimeteo, aria_fuori, oggi_meteosolo internet: girano anche sulla schedanessuna

Una sezione a parte, layout, non porta dati: tiene la disposizione dei widget (barra e gruppi) che scegli nel configuratore.

Dove si configurano

Dal configuratore: Chat, Linear e Discord hanno la loro sezione, Chiavi elenca tutti i segreti. La configurazione sta nelle sezioni di ~/.jz-desk/config.json e il file è sorvegliato: se lo cambi, la scheda si aggiorna da sola senza riavviare il cervello. I segreti (chiavi API, client secret) vanno nel gestore delle chiavi, non in chiaro: quelli trovati in chiaro in config.json vengono migrati e ne resta una copia config.json.bak-<data>.

Registri di ogni integrazione

Ogni integrazione scrive un registro completo in ~/.jz-desk/logs/<nome>.log, con i tempi di ogni richiesta e i segreti oscurati; sulla console compaiono solo i passaggi importanti. Per vedere tutto anche in console: JZ_DEBUG=<nome>. Gli stessi log si filtrano nella sezione Registri del configuratore.

Sistemi

Le integrazioni sono state provate dal vero su macOS. Su Windows e Linux i percorsi sono scritti (socket e named pipe di Discord, batterie da PowerShell o /sys/class/power_supply) ma non ancora provati su un computer vero: i manifest dichiarano mac finché non lo sono.

Aggiungerne una

Per i servizi con una API HTTP non serve scrivere codice: basta un connettore dichiarativo, un file JSON che descrive la richiesta e come leggere la risposta. Per tutto il resto un'integrazione è un modulo TypeScript del cervello con il suo manifest.

On this page