Liking cljdoc? Tell your friends :D

hive-gimp.lifecycle.host

BOUNDARY. The lifecycle port against the real host: a TCP probe, the MCP plug-in's own check_server/restart_server, the session D-Bus, ss, and a headless flatpak GIMP this adapter launches and owns.

The no-human channel into a RUNNING GUI GIMP is GIMP's own D-Bus service. GIMP 3 owns org.gimp.GIMP.UI on the session bus and exports BatchRun(interpreter, command), the method gimp -b uses to hand a batch to an instance that is already open. Running relaunch-source through python-fu-eval there starts plug-in-mcp-server inside that GIMP. The call is queued by GIMP and answers (true,) at once; the server binds a moment later, which is why every remedy is followed by :await-answer. Nothing has to be installed in GIMP for this, and GIMP need not restart.

Pure helpers (relaunch-source, launch-argv, listener-pids, bus-answer-true?) are public so the suite pins them without a host.

BOUNDARY. The lifecycle port against the real host: a TCP probe, the MCP
plug-in's own `check_server`/`restart_server`, the session D-Bus, `ss`, and
a headless flatpak GIMP this adapter launches and owns.

The no-human channel into a RUNNING GUI GIMP is GIMP's own D-Bus service.
GIMP 3 owns `org.gimp.GIMP.UI` on the session bus and exports
`BatchRun(interpreter, command)`, the method `gimp -b` uses to hand a batch
to an instance that is already open. Running `relaunch-source` through
`python-fu-eval` there starts `plug-in-mcp-server` inside that GIMP. The
call is queued by GIMP and answers `(true,)` at once; the server binds a
moment later, which is why every remedy is followed by `:await-answer`.
Nothing has to be installed in GIMP for this, and GIMP need not restart.

Pure helpers (`relaunch-source`, `launch-argv`, `listener-pids`,
`bus-answer-true?`) are public so the suite pins them without a host.
raw docstring

bus-answer-true?clj

(bus-answer-true? out)

True when a gdbus call printed a boolean tuple (true,).

True when a `gdbus call` printed a boolean tuple `(true,)`.
sourceraw docstring

default-gimp-argvclj

How GIMP is started on this platform. The flatpak is what the README documents; override with :gimp-argv for a native install.

--die-with-parent is load-bearing. flatpak run forks bwrap and the sandboxed GIMP under it; destroying only the flatpak run process orphans that tree to init, which keeps serving the port as a GIMP nobody owns (measured 2026-10-07). With it, the sandbox dies with its launcher, and so with this JVM.

How GIMP is started on this platform. The flatpak is what the README
documents; override with `:gimp-argv` for a native install.

`--die-with-parent` is load-bearing. `flatpak run` forks bwrap and the
sandboxed GIMP under it; destroying only the `flatpak run` process orphans
that tree to init, which keeps serving the port as a GIMP nobody owns
(measured 2026-10-07). With it, the sandbox dies with its launcher, and so
with this JVM.
sourceraw docstring

launch-argvclj

(launch-argv gimp-argv source)

The full argv of a headless GIMP that runs source as its batch: no interface (-i), no data (-d), no fonts (-f), a new instance (-n) so it never hands the batch to a GUI GIMP that happens to be open.

The full argv of a headless GIMP that runs `source` as its batch: no
interface (-i), no data (-d), no fonts (-f), a new instance (-n) so it never
hands the batch to a GUI GIMP that happens to be open.
sourceraw docstring

listener-pidsclj

(listener-pids ss-output)

PIDs ss -ltnpH reports as holding a listening socket, distinct, in order.

PIDs `ss -ltnpH` reports as holding a listening socket, distinct, in order.
sourceraw docstring

owned-gimpclj

One owner per JVM: the headless GIMP outlives any one heal.

One owner per JVM: the headless GIMP outlives any one heal.
sourceraw docstring

owned-processclj

(owned-process)

The ProcessHandle of the headless GIMP this JVM launched, or nil.

The `ProcessHandle` of the headless GIMP this JVM launched, or nil.
sourceraw docstring

relaunch-sourceclj

(relaunch-source)
(relaunch-source procedure)

Python, compiled from forms, that runs procedure non-interactively. proc.run blocks for as long as the server lives, which is what keeps a headless GIMP up and is harmless in a GUI one (GIMP nests the call).

Python, compiled from forms, that runs `procedure` non-interactively.
`proc.run` blocks for as long as the server lives, which is what keeps a
headless GIMP up and is harmless in a GUI one (GIMP nests the call).
sourceraw docstring

server-procedureclj

The reference plug-in's start procedure.

The reference plug-in's start procedure.
sourceraw docstring

systemclj

(system)
(system opts)

A lifecycle system over the real host. opts may carry :gimp-argv and a partial :policy.

A lifecycle system over the real host. `opts` may carry `:gimp-argv` and a
partial `:policy`.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
←Move to previous article
→Move to next article
Ctrl+/Jump to the search field
× close