MCPcopy Create free account
hub / github.com/dedsec1121fk/DedSec / create_launcher

Function create_launcher

Scripts/Developer Base/Mobile Desktop.py:1323–1410  ·  view source on GitHub ↗
(cfg: Dict, distro: str)

Source from the content-addressed store, hash-verified

1321 return "dbus-launch --exit-with-session fluxbox"
1322
1323def create_launcher(cfg: Dict, distro: str) -> Optional[Path]:
1324 prefix = get_prefix()
1325 if not prefix:
1326 return None
1327 ensure_system_entry(cfg, distro)
1328 sys_cfg = cfg["systems"][distro]
1329
1330 launcher_name = f"vnc-{sanitize_launcher_name(distro)}"
1331 launcher_path = Path(prefix) / "bin" / launcher_name
1332
1333 display = int(sys_cfg["display"])
1334 geometry = sys_cfg["geometry"]
1335 depth = int(sys_cfg["depth"])
1336 allow_lan = bool(sys_cfg.get("allow_lan", False))
1337 auto_kill = bool(sys_cfg.get("auto_kill_stale", True))
1338 wake_lock = bool(sys_cfg.get("wake_lock", True))
1339 localhost_flag = "" if allow_lan else "-localhost"
1340 port = 5900 + display
1341 desktop = sys_cfg.get("desktop", "xfce")
1342 x11_disp = sys_cfg.get("x11_display", ":0")
1343
1344 shebang = "#!/data/data/com.termux/files/usr/bin/bash"
1345 wakelock_snippet = "termux-wake-lock >/dev/null 2>&1 || true" if wake_lock else "termux-wake-unlock >/dev/null 2>&1 || true"
1346 autokill_snippet = "VCMD=''; command -v vncserver >/dev/null 2>&1 && VCMD='vncserver'; command -v tigervncserver >/dev/null 2>&1 && VCMD='tigervncserver'; [ -n \"$VCMD\" ] && $VCMD -kill :$DISPLAY 2>/dev/null || true" if auto_kill else ":"
1347 x11_desktop_cmd = launcher_desktop_cmd(desktop)
1348
1349 content = f"""{shebang}
1350set -e
1351
1352SYSTEM={sh_quote(distro)}
1353DISPLAY={display}
1354GEOMETRY={sh_quote(geometry)}
1355DEPTH={depth}
1356LOCALHOST_FLAG={sh_quote(localhost_flag)}
1357PORT={port}
1358X11_DISPLAY={sh_quote(x11_disp)}
1359DESKTOP_CMD={sh_quote(x11_desktop_cmd)}
1360
1361cmd="$1"
1362if [ -z "$cmd" ]; then cmd="start"; fi
1363
1364case "$cmd" in
1365 start)
1366 {wakelock_snippet}
1367 proot-distro login "$SYSTEM" --shared-tmp -- /bin/sh -lc '{autokill_snippet}; VCMD=""; command -v vncserver >/dev/null 2>&1 && VCMD="vncserver"; command -v tigervncserver >/dev/null 2>&1 && VCMD="tigervncserver"; [ -z "$VCMD" ] && echo "No VNC server found." && exit 2; $VCMD :{display} -geometry {geometry} -depth {depth} {localhost_flag} || exit $?; $VCMD -list || true'
1368 echo
1369 echo "Connect: 127.0.0.1:$PORT"
1370 ;;
1371 stop)
1372 proot-distro login "$SYSTEM" --shared-tmp -- /bin/sh -lc 'VCMD=""; command -v vncserver >/dev/null 2>&1 && VCMD="vncserver"; command -v tigervncserver >/dev/null 2>&1 && VCMD="tigervncserver"; [ -n "$VCMD" ] && $VCMD -kill :{display} || true; [ -n "$VCMD" ] && $VCMD -list || true'
1373 ;;
1374 restart)
1375 {wakelock_snippet}
1376 proot-distro login "$SYSTEM" --shared-tmp -- /bin/sh -lc 'VCMD=""; command -v vncserver >/dev/null 2>&1 && VCMD="vncserver"; command -v tigervncserver >/dev/null 2>&1 && VCMD="tigervncserver"; [ -z "$VCMD" ] && echo "No VNC server found." && exit 2; $VCMD -kill :{display} || true; $VCMD :{display} -geometry {geometry} -depth {depth} {localhost_flag} || exit $?; $VCMD -list || true'
1377 echo
1378 echo "Connect: 127.0.0.1:$PORT"
1379 ;;
1380 status)

Callers 3

action_installFunction · 0.70
action_settingsFunction · 0.70
action_launcherFunction · 0.70

Calls 5

get_prefixFunction · 0.70
ensure_system_entryFunction · 0.70
sanitize_launcher_nameFunction · 0.70
launcher_desktop_cmdFunction · 0.70
sh_quoteFunction · 0.70

Tested by

no test coverage detected