Sensor nuevo (src/tracker.rs): cada 5 s mira que app esta al frente y si
hubo entrada; con 3 minutos sin entrada deja de contar (ocio profundo, que
cubre tambien pantalla bloqueada y suspension). Acumula bloques {app,
titulo, segundos, segundos activos} y los sube cada 5 min a /api/tracker con
el token del equipo; sin red la cola persiste en disco y reintenta, y un 401
(token revocado desde Ajustes) descarta el token y vacia la cola.
Lo que NO hace, a proposito: no registra que teclas se pulsan —solo compara
una huella de posicion del raton y cuantas teclas hay presionadas—, no toma
pantallazos y no lista procesos de fondo. El estado vive VISIBLE en el menu
de la bandeja, con pausa de un toque.
Ojo al tocar el menu: set_text de Tauri despacha al hilo principal y bloquea
esperandolo, asi que llamarlo desde setup() —que corre en ese mismo hilo
antes de que el bucle de eventos atienda— colgaria la app al abrir. Por eso
los items nacen ya con su texto y todo repintado posterior sale de un hilo
secundario.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
40 líneas
1.6 KiB
TOML
40 líneas
1.6 KiB
TOML
[package]
|
|
name = "labstream-desktop"
|
|
version = "1.7.1"
|
|
description = "Cliente de escritorio de Labstream OS"
|
|
authors = ["Labstream SAS"]
|
|
edition = "2021"
|
|
rust-version = "1.77.2"
|
|
|
|
[lib]
|
|
name = "labstream_desktop_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
# `unstable` habilita multiwebview: varios webviews (pestañas) dentro de UNA ventana.
|
|
# `devtools` deja el inspector disponible TAMBIÉN en release (por defecto solo va en debug:
|
|
# wry-0.55.1/src/lib.rs:834-837). Sin él, un fallo que solo aparece en la app instalada —como
|
|
# el de OnlyOffice en Windows— no se puede mirar por dentro y hay que deducirlo leyendo
|
|
# fuentes. Con él, clic derecho → Inspeccionar sobre el marco que falle y se acabó.
|
|
tauri = { version = "2", features = ["tray-icon", "unstable", "devtools"] }
|
|
tauri-plugin-opener = "2"
|
|
tauri-plugin-clipboard-manager = "2"
|
|
tauri-plugin-notification = "2"
|
|
tauri-plugin-autostart = "2"
|
|
tauri-plugin-updater = "2"
|
|
tauri-plugin-single-instance = "2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
# ── Rastreador de trabajo efectivo (src/tracker.rs) ──
|
|
# active-win-pos-rs: la ventana al frente (app + título) en Win/Mac.
|
|
# device_query: ¿hubo entrada? (huella de mouse/teclas presionadas; NUNCA qué se tecleó).
|
|
# ureq: subir los lotes a /api/tracker (bloqueante, corre en su propio hilo).
|
|
# gethostname: el nombre del equipo, que bautiza al device en el servidor.
|
|
active-win-pos-rs = "0.11"
|
|
device_query = "4"
|
|
ureq = { version = "2", features = ["json"] }
|
|
gethostname = "0.5"
|