kitowall 6.11.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +533 -46
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -2,94 +2,581 @@
2
2
 
3
3
  # Kitowall
4
4
 
5
- `Kitowall` is a wallpaper manager for Hyprland/Wayland using `swww`.
5
+ `Kitowall` es un gestor de wallpapers para `Hyprland/Wayland` con dos capas principales:
6
+ - `kitowall`: CLI y automatización para wallpapers estáticos, rotación, packs, historial, logs y fuentes remotas.
7
+ - `kitowall-ui`: interfaz gráfica de escritorio para gestionar `Kitowall`, `Kitsune`, live wallpapers y utilidades de instalación.
6
8
 
7
- Current version: `3.5.15`.
9
+ Versión actual del paquete CLI: `6.11.0`.
8
10
 
9
- ## What You Can Do
10
- - Rotate wallpapers with transitions.
11
- - Use different wallpapers per monitor.
12
- - Organize by thematic packs (`sao`, `edgerunners`, etc.).
13
- - Download from sources: `local`, `wallhaven`, `unsplash`, `reddit`, `generic_json`, `static_url`.
14
- - Manage everything from CLI and desktop UI.
11
+ ---
15
12
 
16
- ## Default Paths
17
- - Config: `~/.config/kitowall/config.json`
18
- - Runtime state: `~/.local/state/kitowall/state.json`
19
- - History: `~/.local/state/kitowall/history.json`
13
+ # Español
14
+
15
+ ## Qué es Kitowall
16
+
17
+ `Kitowall` organiza wallpapers por packs y fuentes remotas, aplica fondos por monitor usando `swww` y ofrece una UI que también integra:
18
+ - gestión de `Kitsune`
19
+ - live wallpapers
20
+ - bootstrap del host
21
+ - validación de dependencias
22
+ - utilidades de sistema para el stack de wallpapers
23
+
24
+ ## Funcionalidades principales
25
+
26
+ ### CLI / Core
27
+ - Rotación de wallpapers.
28
+ - Wallpapers distintos por monitor.
29
+ - Packs temáticos (`sao`, `edgerunners`, etc.).
30
+ - Fuentes remotas y locales:
31
+ - `local`
32
+ - `wallhaven`
33
+ - `unsplash`
34
+ - `reddit`
35
+ - `generic_json`
36
+ - `static_url`
37
+ - Historial, favoritos, cache y logs.
38
+ - Integración con `systemd --user`.
39
+
40
+ ### UI
41
+ - Panel gráfico para gestionar `Kitowall` y `Kitsune`.
42
+ - Instalador de dependencias del host.
43
+ - Gestión de live wallpapers.
44
+ - Módulo visual de `Kitsune` con grupos, capas, colores dinámicos y efectos.
45
+
46
+ ## Requisitos
47
+
48
+ Entorno objetivo:
49
+ - Linux
50
+ - `Wayland`
51
+ - `Hyprland`
52
+ - `swww`
53
+
54
+ Dependencias del stack principal, según la función usada:
55
+ - `nodejs`, `npm`
56
+ - `rust`, `cargo` o `rustup`
57
+ - `pkg-config` / `pkgconf`
58
+ - `gtk4`
59
+ - `gtk4-layer-shell`
60
+ - `jq`
61
+ - `curl`
62
+ - `git`
63
+ - `cava`
64
+ - `hyprland`
65
+ - `swww`
66
+
67
+ ## Rutas por defecto
68
+
69
+ - Configuración: `~/.config/kitowall/config.json`
70
+ - Estado: `~/.local/state/kitowall/state.json`
71
+ - Historial: `~/.local/state/kitowall/history.json`
20
72
  - Logs: `~/.local/state/kitowall/logs.jsonl`
21
73
  - Wallpapers: `~/Pictures/Wallpapers/<pack>`
22
74
 
23
- ## Quick Start (CLI)
75
+ ## Instalación recomendada: AppImage
76
+
77
+ La distribución recomendada de la UI es la `AppImage`.
78
+
79
+ ### Importante
80
+ No ejecutes la AppImage con `sudo`.
81
+
82
+ Correcto:
83
+ ```bash
84
+ chmod +x ./Kitowall-*.AppImage
85
+ ./Kitowall-*.AppImage --no-sandbox
86
+ ```
87
+
88
+ Incorrecto:
89
+ ```bash
90
+ sudo ./Kitowall-*.AppImage --no-sandbox
91
+ ```
92
+
93
+ Razón:
94
+ - Electron no debe ejecutarse como root en tu sesión gráfica.
95
+ - Si corres la AppImage con `sudo`, puedes perder `DISPLAY`, `WAYLAND_DISPLAY`, `XDG_RUNTIME_DIR` y la app fallará al iniciar.
96
+
97
+ ### Flujo recomendado
98
+ 1. Descarga la última `AppImage` desde GitHub Releases.
99
+ 2. Dale permisos de ejecución.
100
+ 3. Ábrela como usuario normal.
101
+ 4. Usa el instalador de dependencias desde la UI.
102
+
103
+ ## Instalación de dependencias del host
104
+
105
+ `Kitowall` soporta instalación asistida del host.
106
+
107
+ ### Cómo funciona ahora
108
+ La app separa dos fases:
109
+
110
+ 1. **Fase privilegiada**
111
+ - instala paquetes del sistema
112
+ - se ejecuta con `pkexec`
113
+ - muestra prompt gráfico de autenticación
114
+ - no requiere abrir consola manualmente
115
+
116
+ 2. **Fase de usuario**
117
+ - instala y configura binarios en `~/.local/...`
118
+ - inicializa wrappers y configuración
119
+ - no corre como root
120
+
121
+ ### Recomendación
122
+ Usa el botón:
123
+ - `Install Dependencies`
124
+
125
+ Ese flujo es preferible a pedirle al usuario que abra la terminal con `sudo`.
126
+
127
+ ### Requisitos para este flujo gráfico
128
+ El host debe tener:
129
+ - `pkexec`
130
+ - un agente `polkit` activo en la sesión
131
+
132
+ Sin eso, la instalación de paquetes del sistema seguirá necesitando intervención manual.
133
+
134
+ ## Bootstrap manual
135
+
136
+ Si quieres hacer el bootstrap desde terminal, usa:
137
+
138
+ ```bash
139
+ ./scripts/bootstrap-host.sh
140
+ ```
141
+
142
+ Eso ejecuta:
143
+ - instalación/configuración de `kitowall`
144
+ - instalación/configuración de `kitsune`
145
+ - instalación/configuración de `kitsune-rendercore`
146
+ - validación del host
147
+
148
+ ### Nota
149
+ El script puede necesitar privilegios para instalar paquetes del sistema. La forma recomendada para usuarios finales sigue siendo la UI con `pkexec`.
150
+
151
+ ## Inicialización
152
+
153
+ Después del bootstrap, inicializa el stack:
154
+
155
+ ```bash
156
+ kitowall init --namespace kitowall --apply --force
157
+ ```
158
+
159
+ ## Instalación de Kitsune
160
+
161
+ Si trabajas con `Kitsune`, el flujo soportado es:
162
+
163
+ ```bash
164
+ kitsune install --install-packages
165
+ ```
166
+
167
+ O bien:
168
+
169
+ ```bash
170
+ cd Kitsune
171
+ ./scripts/install.sh --install-packages
172
+ ```
173
+
174
+ En la UI, si el usuario dispara instalación con paquetes, `Kitowall` ya puede elevar solo la parte necesaria de sistema sin ejecutar Electron como root.
175
+
176
+ ## Desarrollo rápido
177
+
178
+ ### CLI
24
179
  ```bash
25
180
  npm install
26
181
  npm run build
27
182
 
28
183
  node dist/cli.js outputs
29
184
  node dist/cli.js status
30
- node dist/cli.js next
31
185
  node dist/cli.js check --json
32
186
  ```
33
187
 
34
- ## Quick Start (UI)
188
+ ### UI
35
189
  ```bash
36
190
  cd ui
37
191
  npm install
38
192
  npm run electron:dev
39
193
  ```
40
194
 
41
- ## AppImage (Recommended)
42
- AppImage is now the primary desktop distribution for `kitowall-ui`.
195
+ ### Builds
196
+ ```bash
197
+ npm run build
198
+ npm run package:cli
199
+ npm run package:ui
200
+ npm run package:all
201
+ ```
43
202
 
44
- 1) Download the latest `Kitowall-<version>-x86_64.AppImage` from GitHub Releases.
45
- 2) Make it executable:
203
+ ## Comandos útiles
204
+
205
+ ### Core
46
206
  ```bash
47
- chmod +x ./Kitowall-*.AppImage
207
+ kitowall outputs
208
+ kitowall status
209
+ kitowall next
210
+ kitowall check --json
211
+ kitowall mode rotate
212
+ kitowall rotate-now
213
+ ```
214
+
215
+ ### Packs y fuentes
216
+ ```bash
217
+ kitowall list-packs
218
+ kitowall pack show <name>
219
+ kitowall refresh-pack <name>
220
+ kitowall hydrate-pack <name> --count 10
48
221
  ```
49
- 3) First-time host bootstrap (installs CLI/runtime dependencies on host):
222
+
223
+ ### Historial y logs
50
224
  ```bash
51
- ./scripts/bootstrap-host.sh
225
+ kitowall history --limit 100
226
+ kitowall history clear
227
+ kitowall logs --limit 200
228
+ kitowall logs clear
229
+ ```
230
+
231
+ ### Servicios
232
+ ```bash
233
+ kitowall install-systemd --every 5m
234
+ kitowall systemd-status
52
235
  ```
53
- If `bootstrap-host.sh` fails on Arch with errors like `zstd: undefined symbol: POOL_free` or `bsdtar: Write error`, repair core compression/archive libs and retry:
236
+
237
+ ## Live Wallpapers
238
+
239
+ `Kitowall` incluye soporte para live wallpapers y Wallpaper Engine dentro de la UI y del CLI.
240
+
241
+ Documentación y componentes relacionados:
242
+ - `ui/README.md`
243
+ - `src/core/live.ts`
244
+ - comandos `kitowall live ...`
245
+ - comandos `kitowall we ...`
246
+
247
+ ## Recomendaciones de instalación
248
+
249
+ ### Para usuarios finales
250
+ - usa la `AppImage`
251
+ - no la ejecutes con `sudo`
252
+ - instala dependencias desde la UI
253
+ - deja que `pkexec` pida autenticación cuando haga falta
254
+
255
+ ### Para desarrollo
256
+ - usa el repo directamente
257
+ - CLI desde raíz
258
+ - UI desde `ui/`
259
+
260
+ ### Para Arch/Hyprland
261
+ Si `bootstrap-host.sh` falla por librerías de compresión/archivo, repara el sistema y reintenta:
262
+
54
263
  ```bash
55
264
  sudo pacman -Syu
56
265
  sudo pacman -S --overwrite '*' zstd libarchive
57
266
  ```
58
- Reason: this fixes host library mismatches (partial/out-of-sync updates) that break AUR package builds and package compression.
59
267
 
60
- 4) Initialize services:
268
+ ## Validación del flujo privilegiado
269
+
270
+ Antes de pulsar “Install Dependencies”, verifica que la sesión expone `DISPLAY`, `WAYLAND_DISPLAY`, `XDG_RUNTIME_DIR` y `DBUS_SESSION_BUS_ADDRESS`. El backend ahora registra en `/tmp/kitowall-kitsune-ui.log` una línea como `runPrivilegedSystemBootstrap: … display=… wayland=… dbus=set|missing`. Si `dbus=missing`, cierra y vuelve a iniciar la sesión gráfica para que el agente de polkit arranque o repasa el entorno de Wayland/X11.
271
+
272
+ ## Estructura relevante
273
+
274
+ - `src/cli.ts`: CLI principal
275
+ - `scripts/bootstrap-host.sh`: bootstrap de usuario / orquestación
276
+ - `scripts/bootstrap-system.sh`: helper root para paquetes del sistema
277
+ - `ui/`: aplicación Electron + Svelte
278
+ - `dist/`: salida del CLI
279
+ - `CONFIG_EXAMPLES.md`: ejemplos de configuración
280
+ - `DEPENDENCIES.md`: dependencias
281
+ - `STATUS.md`: estado del proyecto
282
+
283
+ ## Documentación relacionada
284
+
285
+ - `CONFIG_EXAMPLES.md`
286
+ - `DEPENDENCIES.md`
287
+ - `STATUS.md`
288
+ - `ui/README.md`
289
+ - `RELEASE_CHECKLIST.md`
290
+ - `RELEASE_NOTES_1.0.0.md`
291
+
292
+ ## Legal
293
+
294
+ - `LICENSE.md`
295
+ - `NOTICE.md`
296
+ - `TRADEMARKS.md`
297
+ - licencia del logo en `ui/src/assets/logo-LICENSE.md`
298
+
299
+ ---
300
+
301
+ # English
302
+
303
+ ## What Kitowall Is
304
+
305
+ `Kitowall` is a wallpaper management stack for `Hyprland/Wayland` with two main layers:
306
+ - `kitowall`: CLI and automation for static wallpapers, rotation, packs, history, logs, and remote sources.
307
+ - `kitowall-ui`: desktop UI used to manage `Kitowall`, `Kitsune`, live wallpapers, and host bootstrap tasks.
308
+
309
+ ## Main Features
310
+
311
+ ### CLI / Core
312
+ - Wallpaper rotation.
313
+ - Per-monitor wallpapers.
314
+ - Pack-based organization.
315
+ - Local and remote sources:
316
+ - `local`
317
+ - `wallhaven`
318
+ - `unsplash`
319
+ - `reddit`
320
+ - `generic_json`
321
+ - `static_url`
322
+ - History, favorites, cache and logs.
323
+ - `systemd --user` integration.
324
+
325
+ ### UI
326
+ - Desktop control panel for `Kitowall` and `Kitsune`.
327
+ - Host dependency installer.
328
+ - Live wallpaper management.
329
+ - Visual `Kitsune` editor with groups, layers, dynamic colors and effects.
330
+
331
+ ## Requirements
332
+
333
+ Target environment:
334
+ - Linux
335
+ - `Wayland`
336
+ - `Hyprland`
337
+ - `swww`
338
+
339
+ Common dependencies depending on enabled features:
340
+ - `nodejs`, `npm`
341
+ - `rust`, `cargo` or `rustup`
342
+ - `pkg-config` / `pkgconf`
343
+ - `gtk4`
344
+ - `gtk4-layer-shell`
345
+ - `jq`
346
+ - `curl`
347
+ - `git`
348
+ - `cava`
349
+ - `hyprland`
350
+ - `swww`
351
+
352
+ ## Default Paths
353
+
354
+ - Config: `~/.config/kitowall/config.json`
355
+ - Runtime state: `~/.local/state/kitowall/state.json`
356
+ - History: `~/.local/state/kitowall/history.json`
357
+ - Logs: `~/.local/state/kitowall/logs.jsonl`
358
+ - Wallpapers: `~/Pictures/Wallpapers/<pack>`
359
+
360
+ ## Recommended Installation: AppImage
361
+
362
+ The recommended desktop distribution for the UI is the `AppImage`.
363
+
364
+ ### Important
365
+ Do not run the AppImage with `sudo`.
366
+
367
+ Correct:
368
+ ```bash
369
+ chmod +x ./Kitowall-*.AppImage
370
+ ./Kitowall-*.AppImage --no-sandbox
371
+ ```
372
+
373
+ Incorrect:
374
+ ```bash
375
+ sudo ./Kitowall-*.AppImage --no-sandbox
376
+ ```
377
+
378
+ Reason:
379
+ - Electron should not run as root inside your graphical session.
380
+ - Running the AppImage with `sudo` may break `DISPLAY`, `WAYLAND_DISPLAY`, `XDG_RUNTIME_DIR`, and the app may fail to start.
381
+
382
+ ### Recommended Flow
383
+ 1. Download the latest `AppImage` from GitHub Releases.
384
+ 2. Make it executable.
385
+ 3. Launch it as a normal user.
386
+ 4. Use the dependency installer from the UI.
387
+
388
+ ## Host Dependency Installation
389
+
390
+ `Kitowall` supports assisted host setup.
391
+
392
+ ### How It Works Now
393
+ The app separates installation into two phases:
394
+
395
+ 1. **Privileged phase**
396
+ - installs system packages
397
+ - runs through `pkexec`
398
+ - shows a graphical authentication prompt
399
+ - does not require opening a terminal manually
400
+
401
+ 2. **User phase**
402
+ - installs and configures user-space binaries in `~/.local/...`
403
+ - initializes wrappers and config files
404
+ - does not run as root
405
+
406
+ ### Recommendation
407
+ Use the UI button:
408
+ - `Install Dependencies`
409
+
410
+ This is the intended end-user path instead of asking users to open a terminal and run `sudo` themselves.
411
+
412
+ ### Requirements for the graphical flow
413
+ The host should provide:
414
+ - `pkexec`
415
+ - an active `polkit` agent in the session
416
+
417
+ Without those, system package installation still requires manual intervention.
418
+
419
+ ## Privileged flow validation
420
+
421
+ Before hitting “Install Dependencies”, verify your session exposes `DISPLAY`, `WAYLAND_DISPLAY`, `XDG_RUNTIME_DIR`, and `DBUS_SESSION_BUS_ADDRESS`. The backend now logs an entry like `runPrivilegedSystemBootstrap: … display=… wayland=… dbus=set|missing` to `/tmp/kitowall-kitsune-ui.log`. If `dbus=missing`, restart the graphical session so the policy kit agent starts or revisit your Wayland/X11 environment.
422
+
423
+ ## Manual Bootstrap
424
+
425
+ If you want to bootstrap from terminal, use:
426
+
427
+ ```bash
428
+ ./scripts/bootstrap-host.sh
429
+ ```
430
+
431
+ That handles:
432
+ - `kitowall` installation/config
433
+ - `kitsune` installation/config
434
+ - `kitsune-rendercore` installation/config
435
+ - host validation
436
+
437
+ ### Note
438
+ The script may need privileges for system package installation. For end users, the recommended path remains the UI flow using `pkexec`.
439
+
440
+ ## Initialization
441
+
442
+ After bootstrap, initialize the stack:
443
+
61
444
  ```bash
62
445
  kitowall init --namespace kitowall --apply --force
63
446
  ```
64
447
 
65
- ## Package / Release
66
- - Release checklist: `RELEASE_CHECKLIST.md`
67
- - Release notes: `RELEASE_NOTES_1.0.0.md`
68
- - Dependencies: `DEPENDENCIES.md`
69
- - AppImage CI: `.github/workflows/build-appimage.yml`
448
+ ## Kitsune Installation
449
+
450
+ If you work with `Kitsune`, the supported installation flow is:
70
451
 
71
- Main commands:
72
452
  ```bash
73
- # Validate CLI before release
74
- npm run release:check
453
+ kitsune install --install-packages
454
+ ```
75
455
 
76
- # Build distributable CLI tarball
77
- npm run package:cli
456
+ Or directly:
78
457
 
79
- # Build desktop app package (Electron)
80
- npm run package:ui
458
+ ```bash
459
+ cd Kitsune
460
+ ./scripts/install.sh --install-packages
461
+ ```
81
462
 
82
- # Full pipeline
463
+ Inside the UI, when installation with packages is requested, `Kitowall` can elevate only the system-dependency phase instead of running Electron as root.
464
+
465
+ ## Quick Development
466
+
467
+ ### CLI
468
+ ```bash
469
+ npm install
470
+ npm run build
471
+
472
+ node dist/cli.js outputs
473
+ node dist/cli.js status
474
+ node dist/cli.js check --json
475
+ ```
476
+
477
+ ### UI
478
+ ```bash
479
+ cd ui
480
+ npm install
481
+ npm run electron:dev
482
+ ```
483
+
484
+ ### Builds
485
+ ```bash
486
+ npm run build
487
+ npm run package:cli
488
+ npm run package:ui
83
489
  npm run package:all
84
490
  ```
85
491
 
86
- ## User Docs
87
- - Current status: `STATUS.md`
88
- - Config examples: `CONFIG_EXAMPLES.md`
89
- - UI details: `ui/README.md`
492
+ ## Useful Commands
493
+
494
+ ### Core
495
+ ```bash
496
+ kitowall outputs
497
+ kitowall status
498
+ kitowall next
499
+ kitowall check --json
500
+ kitowall mode rotate
501
+ kitowall rotate-now
502
+ ```
503
+
504
+ ### Packs and Sources
505
+ ```bash
506
+ kitowall list-packs
507
+ kitowall pack show <name>
508
+ kitowall refresh-pack <name>
509
+ kitowall hydrate-pack <name> --count 10
510
+ ```
511
+
512
+ ### History and Logs
513
+ ```bash
514
+ kitowall history --limit 100
515
+ kitowall history clear
516
+ kitowall logs --limit 200
517
+ kitowall logs clear
518
+ ```
519
+
520
+ ### Services
521
+ ```bash
522
+ kitowall install-systemd --every 5m
523
+ kitowall systemd-status
524
+ ```
525
+
526
+ ## Live Wallpapers
527
+
528
+ `Kitowall` also includes live wallpaper and Wallpaper Engine support through both UI and CLI.
529
+
530
+ Related docs and code:
531
+ - `ui/README.md`
532
+ - `src/core/live.ts`
533
+ - `kitowall live ...`
534
+ - `kitowall we ...`
535
+
536
+ ## Installation Recommendations
537
+
538
+ ### For end users
539
+ - use the `AppImage`
540
+ - do not run it with `sudo`
541
+ - install dependencies from the UI
542
+ - let `pkexec` request authentication when required
543
+
544
+ ### For development
545
+ - use the repository directly
546
+ - CLI from project root
547
+ - UI from `ui/`
548
+
549
+ ### For Arch/Hyprland
550
+ If `bootstrap-host.sh` fails because of compression/archive libraries, repair the host and retry:
551
+
552
+ ```bash
553
+ sudo pacman -Syu
554
+ sudo pacman -S --overwrite '*' zstd libarchive
555
+ ```
556
+
557
+ ## Relevant Structure
558
+
559
+ - `src/cli.ts`: main CLI
560
+ - `scripts/bootstrap-host.sh`: user/bootstrap orchestration
561
+ - `scripts/bootstrap-system.sh`: root helper for system packages
562
+ - `ui/`: Electron + Svelte desktop app
563
+ - `dist/`: CLI output
564
+ - `CONFIG_EXAMPLES.md`: config examples
565
+ - `DEPENDENCIES.md`: dependency reference
566
+ - `STATUS.md`: current project status
567
+
568
+ ## Related Documentation
569
+
570
+ - `CONFIG_EXAMPLES.md`
571
+ - `DEPENDENCIES.md`
572
+ - `STATUS.md`
573
+ - `ui/README.md`
574
+ - `RELEASE_CHECKLIST.md`
575
+ - `RELEASE_NOTES_1.0.0.md`
90
576
 
91
577
  ## Legal
92
- - License: `LICENSE.md`
93
- - Attribution notice: `NOTICE.md`
94
- - Trademarks: `TRADEMARKS.md`
95
- - Logo license: `ui/src/assets/logo-LICENSE.md`
578
+
579
+ - `LICENSE.md`
580
+ - `NOTICE.md`
581
+ - `TRADEMARKS.md`
582
+ - logo license at `ui/src/assets/logo-LICENSE.md`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitowall",
3
- "version": "6.11.0",
3
+ "version": "7.1.0",
4
4
  "description": "CLI/daemon for Hyprland wallpapers using swww with pack-based rotation.",
5
5
  "repository": {
6
6
  "type": "git",