BookinglyTech News
Software

Reemplazar startplasma con scripts de shell o dinit

Un desarrollador muestra cómo iniciar una sesión de Plasma 6 sin startplasma, solo con variables de entorno y unos pocos procesos. El experimento funciona y promete una segunda parte con dinit.

2 min de lecturaLobsters0 vistas

Ivan Čukić, conocido por su trabajo en KDE, ha publicado en su blog un experimento que recupera el espíritu de los antiguos scripts startkde: arrancar una sesión de Plasma sin depender de startplasma, el gestor de arranque actual que encadena DBus, kwin_wayland y plasma_session.

El proceso estándar no es complicado, pero sí enrevesado: el display manager lanza startplasma, que crea una sesión de DBus, inicia startplasmacompositor (que a su vez lanza kwin_wayland), después plasma_session y con ello kded6 y ksmserver. Otros componentes como kactivitymanagerd se activan bajo demanda vía DBus.

Čukić propone sustituir esa cadena por un script propio que haga lo esencial. Primero define las variables de entorno necesarias: XDG_SESSION_TYPE=wayland, XDG_CURRENT_DESKTOP=KDE, QT_QPA_PLATFORM=wayland, KDE_SESSION_VERSION=6, etc. Si tienes rutas de instalación personalizadas, añade también PATH, XDG_DATA_DIRS, QT_PLUGIN_PATH y similares. También recomienda incluir las variables definidas en ~/.config/plasma-workspace/env.

El script principal es minimalista: tras cargar esas variables y ejecutar dbus-update-activation-environment --all, lanza kwin_wayland --drm en segundo plano, espera un segundo (con la salvedad de que el sleep es feo pero funciona), exporta WAYLAND_DISPLAY=wayland-0 y luego arranca kactivitymanagerd, ksmserver, kded6, plasmashell y krunner. Finalmente espera a que termine kwin.

El autor reconoce que el sleep 1 es una chapuza y que se podría detectar la aparición de wayland-0 de forma más elegante, pero recuerda que el antiguo startkde también tenía pausas similares. El único requisito adicional es crear un archivo .desktop para que el gestor de sesiones lo reconozca, ejecutando dbus-run-session con el script.

La prueba funcionó sin problemas importantes, salvo que se pierde la pantalla de bienvenida (ksplashqml, que ya tiene 15 años). Čukić no probó el script durante mucho tiempo porque pronto lo sustituyó por una configuración basada en dinit, que promete explicar en una segunda parte.

El experimento demuestra que la sesión de Plasma no es tan monolítica como parece y que todavía es posible desmontarla y volver a montarla con herramientas simples. Aunque no sea un enfoque que la mayoría quiera mantener en producción, sirve para entender qué hace realmente cada pieza y para quienes buscan minimizar dependencias o construir sesiones personalizadas.