kitowall
v8.1.0
Published
CLI/daemon for Hyprland wallpapers using awww with pack-based rotation.
Readme
Kitowall
Kitowall es un gestor de wallpapers para Hyprland/Wayland con dos capas principales:
kitowall: CLI y automatización para wallpapers estáticos, rotación, packs, historial, logs y fuentes remotas.kitowall-ui: interfaz gráfica de escritorio para gestionarKitowall,Kitsune, live wallpapers y utilidades de instalación.
Versión actual del paquete CLI: 6.11.0.
Español
Qué es Kitowall
Kitowall organiza wallpapers por packs y fuentes remotas, aplica fondos por monitor usando swww y ofrece una UI que también integra:
- gestión de
Kitsune - live wallpapers
- bootstrap del host
- validación de dependencias
- utilidades de sistema para el stack de wallpapers
Funcionalidades principales
CLI / Core
- Rotación de wallpapers.
- Wallpapers distintos por monitor.
- Packs temáticos (
sao,edgerunners, etc.). - Fuentes remotas y locales:
localwallhavenunsplashredditgeneric_jsonstatic_url
- Historial, favoritos, cache y logs.
- Integración con
systemd --user.
UI
- Panel gráfico para gestionar
KitowallyKitsune. - Instalador de dependencias del host.
- Gestión de live wallpapers.
- Módulo visual de
Kitsunecon grupos, capas, colores dinámicos y efectos.
Requisitos
Entorno objetivo:
- Linux
WaylandHyprlandswww
Dependencias del stack principal, según la función usada:
nodejs,npmrust,cargoorustuppkg-config/pkgconfgtk4gtk4-layer-shelljqcurlgitcavahyprlandswww
Rutas por defecto
- Configuración:
~/.config/kitowall/config.json - Estado:
~/.local/state/kitowall/state.json - Historial:
~/.local/state/kitowall/history.json - Logs:
~/.local/state/kitowall/logs.jsonl - Wallpapers:
~/Pictures/Wallpapers/<pack>
Instalación recomendada: AppImage
La distribución recomendada de la UI es la AppImage.
Paso previo obligatorio
Antes de abrir Kitowall, el host debe tener:
nodejsnpmkitowallCLI instalado para el usuario actual
Comando recomendado:
npm i -g --prefix ~/.local kitowall@latestVerificación rápida:
command -v node
command -v npm
command -v kitowall
kitowall --versionImportante
No ejecutes la AppImage con sudo.
Correcto:
chmod +x ./Kitowall-*.AppImage
./Kitowall-*.AppImage --no-sandboxIncorrecto:
sudo ./Kitowall-*.AppImage --no-sandboxRazón:
- Electron no debe ejecutarse como root en tu sesión gráfica.
- Si corres la AppImage con
sudo, puedes perderDISPLAY,WAYLAND_DISPLAY,XDG_RUNTIME_DIRy la app fallará al iniciar.
Flujo recomendado
- Descarga la última
AppImagedesde GitHub Releases. - Asegúrate de tener
nodejs,npmykitowallCLI instalados. - Dale permisos de ejecución.
- Ábrela como usuario normal.
- Usa el instalador de dependencias desde la UI.
Instalación de dependencias del host
Kitowall soporta instalación asistida del host.
Cómo funciona ahora
La app separa dos fases:
- Fase privilegiada
- instala paquetes del sistema
- se ejecuta con
pkexec - muestra prompt gráfico de autenticación
- no requiere abrir consola manualmente
- Fase de usuario
- instala y configura binarios en
~/.local/... - inicializa wrappers y configuración
- no corre como root
Recomendación
Usa el botón:
Install Dependencies
Ese flujo es preferible a pedirle al usuario que abra la terminal con sudo.
Requisitos para este flujo gráfico
El host debe tener:
pkexec- un agente
polkitactivo en la sesión
Sin eso, la instalación de paquetes del sistema seguirá necesitando intervención manual.
Bootstrap manual
Si quieres hacer el bootstrap desde terminal, usa:
./scripts/bootstrap-host.shEso ejecuta:
- instalación/configuración de
kitowall - instalación/configuración de
kitsune - instalación/configuración de
kitsune-rendercore - validación del host
Nota
El script puede necesitar privilegios para instalar paquetes del sistema. La forma recomendada para usuarios finales sigue siendo la UI con pkexec.
Si el CLI del host está desactualizado
Si la UI indica que el kitowall del host no soporta un comando nuevo, actualízalo con:
npm i -g --prefix ~/.local kitowall@latestInicialización
Después del bootstrap, inicializa el stack:
kitowall init --namespace kitowall --apply --forceInstalación de Kitsune
Si trabajas con Kitsune, el flujo soportado es:
kitsune install --install-packagesO bien:
cd Kitsune
./scripts/install.sh --install-packagesEn 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.
Desarrollo rápido
CLI
npm install
npm run build
node dist/cli.js outputs
node dist/cli.js status
node dist/cli.js check --jsonUI
cd ui
npm install
npm run electron:devBuilds
npm run build
npm run package:cli
npm run package:ui
npm run package:allComandos útiles
Core
kitowall outputs
kitowall status
kitowall next
kitowall check --json
kitowall mode rotate
kitowall rotate-nowPacks y fuentes
kitowall list-packs
kitowall pack show <name>
kitowall refresh-pack <name>
kitowall hydrate-pack <name> --count 10Historial y logs
kitowall history --limit 100
kitowall history clear
kitowall logs --limit 200
kitowall logs clearServicios
kitowall install-systemd --every 5m
kitowall systemd-statusLive Wallpapers
Kitowall incluye soporte para live wallpapers y Wallpaper Engine dentro de la UI y del CLI.
Documentación y componentes relacionados:
ui/README.mdsrc/core/live.ts- comandos
kitowall live ... - comandos
kitowall we ...
Recomendaciones de instalación
Para usuarios finales
- usa la
AppImage - no la ejecutes con
sudo - instala dependencias desde la UI
- deja que
pkexecpida autenticación cuando haga falta
Para desarrollo
- usa el repo directamente
- CLI desde raíz
- UI desde
ui/
Para Arch/Hyprland
Si bootstrap-host.sh falla por librerías de compresión/archivo, repara el sistema y reintenta:
sudo pacman -Syu
sudo pacman -S --overwrite '*' zstd libarchiveValidación del flujo privilegiado
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.
Estructura relevante
src/cli.ts: CLI principalscripts/bootstrap-host.sh: bootstrap de usuario / orquestaciónscripts/bootstrap-system.sh: helper root para paquetes del sistemaui/: aplicación Electron + Sveltedist/: salida del CLICONFIG_EXAMPLES.md: ejemplos de configuraciónDEPENDENCIES.md: dependenciasSTATUS.md: estado del proyecto
Documentación relacionada
CONFIG_EXAMPLES.mdDEPENDENCIES.mdSTATUS.mdui/README.mdRELEASE_CHECKLIST.mdRELEASE_NOTES_1.0.0.md
Legal
LICENSE.mdNOTICE.mdTRADEMARKS.md- licencia del logo en
ui/src/assets/logo-LICENSE.md
English
What Kitowall Is
Kitowall is a wallpaper management stack for Hyprland/Wayland with two main layers:
kitowall: CLI and automation for static wallpapers, rotation, packs, history, logs, and remote sources.kitowall-ui: desktop UI used to manageKitowall,Kitsune, live wallpapers, and host bootstrap tasks.
Main Features
CLI / Core
- Wallpaper rotation.
- Per-monitor wallpapers.
- Pack-based organization.
- Local and remote sources:
localwallhavenunsplashredditgeneric_jsonstatic_url
- History, favorites, cache and logs.
systemd --userintegration.
UI
- Desktop control panel for
KitowallandKitsune. - Host dependency installer.
- Live wallpaper management.
- Visual
Kitsuneeditor with groups, layers, dynamic colors and effects.
Requirements
Target environment:
- Linux
WaylandHyprlandswww
Common dependencies depending on enabled features:
nodejs,npmrust,cargoorrustuppkg-config/pkgconfgtk4gtk4-layer-shelljqcurlgitcavahyprlandswww
Default Paths
- Config:
~/.config/kitowall/config.json - Runtime state:
~/.local/state/kitowall/state.json - History:
~/.local/state/kitowall/history.json - Logs:
~/.local/state/kitowall/logs.jsonl - Wallpapers:
~/Pictures/Wallpapers/<pack>
Recommended Installation: AppImage
The recommended desktop distribution for the UI is the AppImage.
Required First Step
Before opening Kitowall, the host must already have:
nodejsnpm- the
kitowallCLI installed for the current user
Recommended command:
npm i -g --prefix ~/.local kitowall@latestQuick verification:
command -v node
command -v npm
command -v kitowall
kitowall --versionImportant
Do not run the AppImage with sudo.
Correct:
chmod +x ./Kitowall-*.AppImage
./Kitowall-*.AppImage --no-sandboxIncorrect:
sudo ./Kitowall-*.AppImage --no-sandboxReason:
- Electron should not run as root inside your graphical session.
- Running the AppImage with
sudomay breakDISPLAY,WAYLAND_DISPLAY,XDG_RUNTIME_DIR, and the app may fail to start.
Recommended Flow
- Download the latest
AppImagefrom GitHub Releases. - Make sure
nodejs,npm, and thekitowallCLI are installed. - Make it executable.
- Launch it as a normal user.
- Use the dependency installer from the UI.
Host Dependency Installation
Kitowall supports assisted host setup.
How It Works Now
The app separates installation into two phases:
- Privileged phase
- installs system packages
- runs through
pkexec - shows a graphical authentication prompt
- does not require opening a terminal manually
- User phase
- installs and configures user-space binaries in
~/.local/... - initializes wrappers and config files
- does not run as root
Recommendation
Use the UI button:
Install Dependencies
This is the intended end-user path instead of asking users to open a terminal and run sudo themselves.
Requirements for the graphical flow
The host should provide:
pkexec- an active
polkitagent in the session
Without those, system package installation still requires manual intervention.
Privileged flow validation
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.
Manual Bootstrap
If you want to bootstrap from terminal, use:
./scripts/bootstrap-host.shThat handles:
kitowallinstallation/configkitsuneinstallation/configkitsune-rendercoreinstallation/config- host validation
Note
The script may need privileges for system package installation. For end users, the recommended path remains the UI flow using pkexec.
If the host CLI is outdated
If the UI reports that the host kitowall does not support a newer command, update it with:
npm i -g --prefix ~/.local kitowall@latestInitialization
After bootstrap, initialize the stack:
kitowall init --namespace kitowall --apply --forceKitsune Installation
If you work with Kitsune, the supported installation flow is:
kitsune install --install-packagesOr directly:
cd Kitsune
./scripts/install.sh --install-packagesInside the UI, when installation with packages is requested, Kitowall can elevate only the system-dependency phase instead of running Electron as root.
Quick Development
CLI
npm install
npm run build
node dist/cli.js outputs
node dist/cli.js status
node dist/cli.js check --jsonUI
cd ui
npm install
npm run electron:devBuilds
npm run build
npm run package:cli
npm run package:ui
npm run package:allUseful Commands
Core
kitowall outputs
kitowall status
kitowall next
kitowall check --json
kitowall mode rotate
kitowall rotate-nowPacks and Sources
kitowall list-packs
kitowall pack show <name>
kitowall refresh-pack <name>
kitowall hydrate-pack <name> --count 10History and Logs
kitowall history --limit 100
kitowall history clear
kitowall logs --limit 200
kitowall logs clearServices
kitowall install-systemd --every 5m
kitowall systemd-statusLive Wallpapers
Kitowall also includes live wallpaper and Wallpaper Engine support through both UI and CLI.
Related docs and code:
ui/README.mdsrc/core/live.tskitowall live ...kitowall we ...
Installation Recommendations
For end users
- use the
AppImage - do not run it with
sudo - install dependencies from the UI
- let
pkexecrequest authentication when required
For development
- use the repository directly
- CLI from project root
- UI from
ui/
For Arch/Hyprland
If bootstrap-host.sh fails because of compression/archive libraries, repair the host and retry:
sudo pacman -Syu
sudo pacman -S --overwrite '*' zstd libarchiveRelevant Structure
src/cli.ts: main CLIscripts/bootstrap-host.sh: user/bootstrap orchestrationscripts/bootstrap-system.sh: root helper for system packagesui/: Electron + Svelte desktop appdist/: CLI outputCONFIG_EXAMPLES.md: config examplesDEPENDENCIES.md: dependency referenceSTATUS.md: current project status
Related Documentation
CONFIG_EXAMPLES.mdDEPENDENCIES.mdSTATUS.mdui/README.mdRELEASE_CHECKLIST.mdRELEASE_NOTES_1.0.0.md
Legal
LICENSE.mdNOTICE.mdTRADEMARKS.md- logo license at
ui/src/assets/logo-LICENSE.md
