@vasakgroup/plugin-config-manager
v2.13.0
Published
A tauri plugin for managing configuration in a Vue 3 application using Pinia.
Maintainers
Readme
Tauri plugin config manager
Un simple plugin de tauri que permite leer y modificar la configuracion de VasakOS en tiempo real para poder integrarse con las preferencias del usuario
Tecnología
Estado
Descripción
Un simple plugin de tauri que permite leer y modificar la configuracion de VasakOS en tiempo real para poder integrarse con las preferencias del usuario
Para el usuario: Un simple plugin de tauri que permite leer y modificar la configuracion de VasakOS en tiempo real para poder integrarse con las preferencias del usuario
Integración VasakOS: Integra con el ecosistema VasakOS vía D-Bus y configuración compartida.
Arquitectura (diagramas)
Flujo de datos
graph TD
A[Entrada: App host Tauri (invoke / events)] --> B[Procesamiento: Plugin Rust backend + JS bindings]
B --> C[Salida: APIs nativas expuestas a la app]
style A fill:#e1f5fe
style C fill:#e8f5e9Componentes internos
flowchart LR
subgraph App[Tauri plugin config manager]
UI[JS Bindings (TypeScript)]
Core[Rust backend: plugin Tauri]
IPC[Tauri invoke / events]
end
UI --> IPC
IPC --> Core
Core --> System[Tauri runtime + APIs nativas]
style UI fill:#f3e5f5
style Core fill:#e3f2fd
style System fill:#fce4ecIntegración en el sistema VasakOS
C4Context
title Tauri plugin config manager en VasakOS
Person(usuario, "Usuario", "Persona que usa el sistema")
System_Boundary(c1, "VasakOS") {
System(app, "Tauri plugin config manager", "Plugin Tauri para config-manager")
System_Ext(tauri, "Tauri v2", "Runtime de la app host")
}
Rel(usuario, app, "Usa")
Rel(app, tauri, "Se registra como plugin")
Rel(app, systemd, "Opcional: servicios del plugin")Instalación
Desde npm (recomendado)
# Con bun (recomendado para proyectos VasakOS)
bun add @vasakgroup/tauri-plugin-config-manager
# Con npm
npm install @vasakgroup/tauri-plugin-config-manager
# Con pnpm
pnpm add @vasakgroup/tauri-plugin-config-managerDesde fuente (desarrollo del plugin)
git clone https://github.com/Vasak-OS/tauri-plugin-config-manager.git
cd tauri-plugin-config-manager
# Build Rust
cargo build --release --locked
# Tests
cargo test --locked
bun test # si tiene tests JSUso rápido
import { config_manager } from '@vasakgroup/tauri-plugin-config-manager';
// En tu app Tauri (tauri.conf.json → plugins):
// { "plugins": { "config-manager": { ...config... } } }
// Uso programático:
const plugin = config_manager();
const result = await plugin.someMethod();Atajos / flags principales
| Acción | Código |
|--------|--------|
| Instalar | bun add @vasakgroup/tauri-plugin-config-manager |
| Importar | import { config_manager } from '@vasakgroup/tauri-plugin-config-manager' |
| Configurar | tauri.conf.json → plugins.config-manager |
Captura:
assets/demo.gif(placeholder — sustituir por GIF real)
Configuración
Configuración en tauri.conf.json
{
"plugins": {
"config-manager": {
// Opciones específicas del plugin
}
}
}Variables de entorno (si aplica)
| Variable | Descripción | Por defecto |
|----------|-------------|-------------|
| TAURI-PLUGIN-CONFIG-MANAGER_DEBUG | Logs de depuración del plugin | false |
Variables de entorno
| Variable | Descripción | Por defecto |
|----------|-------------|-------------|
| VASAK_DEBUG | Activa logs de depuración en consola | false |
| VASAK_PROFILE | Perfil de rendimiento: balanced, performance, power-save | balanced |
Integración con tauri-plugin-config-manager
(plugin — la app host usa config-manager)
Desarrollo
Requisitos
- Rust:
rustuptoolchain estable (rust-toolchain.tomlfija la versión) - Node / bun:
bun≥ 1.1 (nunca npm/yarn/pnpm para apps Tauri) - Sistema:
pkg-config,libgtk-3-dev,libwebkit2gtk-4.1-dev,libssl-dev libssl-devpara TLS, dependencias nativas específicas del plugin
Dependencias de desarrollo
Sistema (paquetes Arch / Debian / Fedora)
base-devel, pkgconf, libssl-dev, libwebkit2gtk-4.1-dev, libgtk-3-dev, libayatana-appindicator3-dev, librsvg2-dev, gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, libpipewire-0.3-dev, libwireplumber-0.5-dev, libdbus-1-dev, libudev-dev, libxkbcommon-dev, libwayland-dev, meson, ninja, clang, lld
Rust
rustup → stable + rustfmt + clippy
Node
Solo bun (nunca npm/yarn/pnpm para apps Tauri). bun --version ≥ 1.1
Herramientas CLI
just (command runner), cargo-binstall (opcional), cargo-llvm-cov (para cobertura)
Correr en desarrollo
# Build Rust en watch mode
cargo watch -x "build --lib"
# Tests
cargo test --locked
bun test # si tiene bindings JSCompilar / Build de release
# Build release
cargo build --release --locked
# Publicar (requiere permisos en crates.io y npm)
cargo publish --locked
npm publishTargets principales
# Desarrollo
cargo watch -x "build --lib"
# Build producción
cargo build --release --locked
# Solo frontend
bun test # tests JS bindings
# Solo backend Rust
cargo build --release --locked
# Lint + tipos (pre-commit / CI)
cargo fmt --check
cargo clippy -- -D warnings
bunx --bun biome check . # si hay código JSPruebas
# Tests Rust
cargo test -p tauri-plugin-config-manager --locked
# Tests JS (bindings)
bun testConvención de commits
<tipo>(<ámbito>): <descripción corta>
[cuerpo opcional]
[pie opcional: Closes #N]Tipos habituales: feat, fix, bugfix, docs, ci, chore, security, refactor, perf, test.
Cómo abrir PR
- Rama desde
origin/main:git worktree add -b feat/{{TEMA}} ~/wt/tauri-plugin-config-manager-{{TEMA}} origin/main - Prefijos de rama:
fix/,feat/,bugfix/,docs/,ci/,chore/,security/ - Escribe el fix →
qaescribe las pruebas (fallan sin el fix) → suite verde → abre PR - Al abrir PR, cuatro cosas obligatorias:
- Asignado a
JoaquinDecima - Etiqueta
enhancementobug(+ci/dependenciessi aplica) - Añadido al proyecto «VasakOS Roadmap»
- Status In Progress
- Asignado a
Arquitectura (texto)
Crates / módulos principales
| Crate / Módulo | Responsabilidad |
|----------------|-----------------|
| tauri-plugin-config-manager | Plugin Tauri: Rust backend + JS bindings |
Interfaces D-Bus / zbus expuestas
Puntos de extensión
- Plugins: Sistema de plugins modular
- Hooks: Hooks de ciclo de vida
- API pública Rust: API pública del crate principal
Features / Cargo features
| Feature | Descripción | Default |
|---------|-------------|---------|
| async | API asíncrona (futures) | ✓ |
| blocking | API bloqueante para compatibilidad | |
Pruebas y calidad
- Cobertura objetivo: ≥ 80 % del código nuevo (SonarCloud Quality Gate)
- Informes: GitHub Actions → pestaña SonarCloud Code Analysis → enlace a SonarCloud
- Añadir pruebas: ver
AGENTS.mdsección 9 (mapa de repos y comandos de prueba) - Regla: toda corrección lleva prueba escrita por
qaque falla sin el fix
Contribuir
- Guía: CONTRIBUTING.md
- Plantillas de issue: ISSUE_TEMPLATE
- Código de conducta: CODE_OF_CONDUCT.md
Contribuidores
Actualizado automáticamente en CI — muestra los avatares de quienes han aportado código a este repo.
Donadores / Sponsors
Backers: Actualizado automáticamente en CI desde GitHub Sponsors / OpenCollective / Polar.
Licencia
GPL-3.0 — Copyright © 2026 Vasak-OS Contributors
