gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 815Rust 56Shell 37Markdown 291229 Sutichaykuna

⎇ main scripts/kde/nested-app.sh Shell · 52 siq'ikuna · 2.6 KB Ñawpa willay ch'uya

kde: nested-app siembra kdeglobals + activa KDEPlasmaPlatformTheme (iconos+Breeze) 7964e45bf · sergio ·

1#!/bin/sh
2# nested-app.sh — corre una app KDE hidratada como VENTANA ANIDADA en el compositor mirada actual
3# (WAYLAND_DISPLAY=/run/mirada-wayland), vía bwrap overlay (alpine+kde-rootfs como /). NO toca la GPU
4# como master (es cliente wayland; renderiza por renderD128/iris). Seguro sobre una sesión viva.
5#   APP=konsole SECS=20 scripts/kde/nested-app.sh
6set -u
7ROOT="$(cd "$(dirname "$0")/../.." && pwd)"; cd "$ROOT"
8R="${RFS:-$ROOT/work/kde-rootfs}"; A="$ROOT/.dev-fs/alpine"
9APP="${APP:-konsole}"; SECS="${SECS:-20}"
10HOST_WL="${HOST_WL:-/run/mirada-wayland}"
11exec bwrap --overlay-src "$A" --overlay-src "$R" --tmp-overlay / \
12  --dev-bind /dev /dev --proc /proc --bind /sys /sys --tmpfs /tmp --tmpfs /run \
13  --bind "$HOST_WL" "$HOST_WL" \
14  --uid 0 --gid 0 \
15  --setenv PATH /usr/bin:/bin:/usr/sbin:/sbin \
16  --setenv LD_LIBRARY_PATH /usr/lib64:/usr/lib/qt6:/usr/lib:/lib \
17  --setenv QT_PLUGIN_PATH /usr/lib64/qt6/plugins:/usr/lib/qt6/plugins \
18  --setenv QML2_IMPORT_PATH /usr/lib64/qt6/qml:/usr/lib/qt6/qml \
19  --setenv QML_IMPORT_PATH /usr/lib64/qt6/qml:/usr/lib/qt6/qml \
20  --setenv XDG_DATA_DIRS /usr/share --setenv XDG_RUNTIME_DIR /run/user/0 \
21  --setenv XDG_CONFIG_HOME /run/cfg --setenv XDG_CACHE_HOME /run/cache --setenv HOME /root \
22  --setenv LIBGL_DRIVERS_PATH /usr/lib/dri --setenv LIBGL_DRIVERS_PATH /usr/lib/dri \
23  --setenv QT_QPA_PLATFORM wayland --setenv WAYLAND_DISPLAY "$HOST_WL" \
24  --setenv QT_QPA_FONTDIR /usr/share/fonts/dejavu \
25  --setenv QT_QPA_PLATFORMTHEME kde \
26  --setenv SHELL /bin/sh \
27  --setenv QT_LOGGING_RULES 'qt.qpa.wayland=false' \
28  sh -c '
29    mkdir -p /run/user/0 /run/dbus /run/cfg /run/cache /root/.config /etc; chmod 700 /run/user/0
30    # kdeglobals: sin esto Qt cae al tema de iconos "hicolor" (vacío) ⇒ dolphin pelado. Con el plugin
31    # KDEPlasmaPlatformTheme (QT_QPA_PLATFORMTHEME=kde) esto aplica estilo breeze + iconos + colores.
32    cat > /run/cfg/kdeglobals <<EOF
33[Icons]
34Theme=breeze
35
36[General]
37ColorScheme=BreezeLight
38widgetStyle=Breeze
39
40[KDE]
41widgetStyle=Breeze
42EOF
43    [ -s /etc/machine-id ] || cat /proc/sys/kernel/random/uuid | tr -d - > /etc/machine-id
44    export DBUS_SESSION_BUS_ADDRESS=$(dbus-daemon --session --fork --print-address 2>/dev/null)
45    echo "dbus=${DBUS_SESSION_BUS_ADDRESS:-VACIO}  wl='"$HOST_WL"'  app='"$APP"'"
46    timeout '"$SECS"' /usr/bin/'"$APP"' >/tmp/nested-'"$APP"'.log 2>&1 &
47    PID=$!
48    sleep 6
49    echo "=== proceso vivo? ==="; kill -0 $PID 2>/dev/null && echo "  ✓ '"$APP"' corriendo (PID $PID) — mirá tu pantalla" || echo "  ✗ murió"
50    echo "=== log (tail) ==="; tail -15 /tmp/nested-'"$APP"'.log
51    wait $PID 2>/dev/null
52  '