diff --git a/.github/social-preview.png b/.github/social-preview.png new file mode 100644 index 00000000..0f9134e4 Binary files /dev/null and b/.github/social-preview.png differ diff --git a/README.md b/README.md index 7731ce71..afe00e0a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,14 @@ # libtmux for Java + +

+ + + libtmux for Java + +

+ + [![CI](https://github.com/libtmux/libtmux-java/actions/workflows/ci.yml/badge.svg)](https://github.com/libtmux/libtmux-java/actions/workflows/ci.yml) [![tmux matrix](https://github.com/libtmux/libtmux-java/actions/workflows/tmux-matrix.yml/badge.svg)](https://github.com/libtmux/libtmux-java/actions/workflows/tmux-matrix.yml) [![Maven Central](https://img.shields.io/maven-central/v/io.github.libtmux/libtmux.svg)](https://central.sonatype.com/artifact/io.github.libtmux/libtmux) diff --git a/assets/README.md b/assets/README.md new file mode 100644 index 00000000..6a297c70 --- /dev/null +++ b/assets/README.md @@ -0,0 +1,14 @@ +# Logo assets + +SVG and 512 × 512 transparent PNG artwork from the libtmux logo kit, +revision `555f60aff5341d8ba59c7466eb9abb537084c98d`. + +Library marks use the cog, workspace marks the tiled tmuxp base, and MCP +marks the Model Context Protocol symbol. Language colors follow +[GitHub Linguist](https://github.com/github-linguist/linguist/blob/538da05f034fa5c83bd81df128d144e208898da3/lib/linguist/languages.yml). +The source libtmux and tmuxp artwork belongs to the project owner. The MCP +symbol comes from the [upstream logo](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/088176704a4e8f20e7f1d237de1de8484aa412fd/docs/logo/light.svg). + +Package-specific artwork sits beside its README where the package format +supports it. `.github/social-preview.png` is the cog sharing card, ready to +upload under the repository's **Settings → Social preview**. diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 00000000..e601df48 Binary files /dev/null and b/assets/logo.png differ diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 00000000..5f308932 --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/build-logic/conventions/src/main/kotlin/libtmux.publication.gradle.kts b/build-logic/conventions/src/main/kotlin/libtmux.publication.gradle.kts index 172c1aa1..3b860147 100644 --- a/build-logic/conventions/src/main/kotlin/libtmux.publication.gradle.kts +++ b/build-logic/conventions/src/main/kotlin/libtmux.publication.gradle.kts @@ -12,6 +12,15 @@ // service that is gone. plugins { id("com.vanniktech.maven.publish") } +// Ship each JVM package's artwork alongside its classes. The BOM has no JAR. +plugins.withId("java") { + tasks.named("processResources") { + from(layout.projectDirectory.dir("assets")) { + into("META-INF/libtmux/${project.name}") + } + } +} + group = "io.github.libtmux" version = providers.gradleProperty("libtmuxVersion").getOrElse("0.0.1-alpha.1-SNAPSHOT") diff --git a/libtmux-bom/README.md b/libtmux-bom/README.md index bd5295cf..db24d22c 100644 --- a/libtmux-bom/README.md +++ b/libtmux-bom/README.md @@ -1,5 +1,14 @@ # libtmux-bom + +

+ + + libtmux for Java + +

+ + **Name one BOM version. Every BOM-managed libtmux coordinate follows it.** diff --git a/libtmux-bom/assets/logo.png b/libtmux-bom/assets/logo.png new file mode 100644 index 00000000..e601df48 Binary files /dev/null and b/libtmux-bom/assets/logo.png differ diff --git a/libtmux-bom/assets/logo.svg b/libtmux-bom/assets/logo.svg new file mode 100644 index 00000000..5f308932 --- /dev/null +++ b/libtmux-bom/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/libtmux-jackson/README.md b/libtmux-jackson/README.md index 455e4d60..1b93211e 100644 --- a/libtmux-jackson/README.md +++ b/libtmux-jackson/README.md @@ -1,5 +1,14 @@ # libtmux-jackson + +

+ + + libtmux for Java + +

+ + **A filter expression, as a versioned JSON document.** The core has no dependencies and never will. This module is where Jackson lives, diff --git a/libtmux-jackson/assets/logo.png b/libtmux-jackson/assets/logo.png new file mode 100644 index 00000000..e601df48 Binary files /dev/null and b/libtmux-jackson/assets/logo.png differ diff --git a/libtmux-jackson/assets/logo.svg b/libtmux-jackson/assets/logo.svg new file mode 100644 index 00000000..5f308932 --- /dev/null +++ b/libtmux-jackson/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/libtmux-junit5/README.md b/libtmux-junit5/README.md index ac362ab9..fcd35ed3 100644 --- a/libtmux-junit5/README.md +++ b/libtmux-junit5/README.md @@ -1,5 +1,14 @@ # libtmux-junit5 + +

+ + + libtmux for Java + +

+ + **A JUnit 5 extension that gives each test its own tmux server, and guarantees it is gone afterwards.** diff --git a/libtmux-junit5/assets/logo.png b/libtmux-junit5/assets/logo.png new file mode 100644 index 00000000..e601df48 Binary files /dev/null and b/libtmux-junit5/assets/logo.png differ diff --git a/libtmux-junit5/assets/logo.svg b/libtmux-junit5/assets/logo.svg new file mode 100644 index 00000000..5f308932 --- /dev/null +++ b/libtmux-junit5/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/libtmux-kotlin/README.md b/libtmux-kotlin/README.md index edafaade..cc9e2a00 100644 --- a/libtmux-kotlin/README.md +++ b/libtmux-kotlin/README.md @@ -1,5 +1,14 @@ # libtmux-kotlin + +

+ + + libtmux for Kotlin + +

+ + **Coroutine wrapper classes, a session/window/split DSL, and `Flow`/`StateFlow` bridges over the Java API.** diff --git a/libtmux-kotlin/assets/logo.png b/libtmux-kotlin/assets/logo.png new file mode 100644 index 00000000..71b819a3 Binary files /dev/null and b/libtmux-kotlin/assets/logo.png differ diff --git a/libtmux-kotlin/assets/logo.svg b/libtmux-kotlin/assets/logo.svg new file mode 100644 index 00000000..9e70bc76 --- /dev/null +++ b/libtmux-kotlin/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/libtmux-mcp/README.md b/libtmux-mcp/README.md index 63d20fc5..d12cfd32 100644 --- a/libtmux-mcp/README.md +++ b/libtmux-mcp/README.md @@ -1,5 +1,14 @@ # libtmux-mcp + +

+ + + libtmux for Java MCP + +

+ + **A tmux server, exposed to a model over the Model Context Protocol.** Point Claude Code, Claude Desktop, Codex, or any MCP client at a tmux socket and diff --git a/libtmux-mcp/assets/logo.png b/libtmux-mcp/assets/logo.png new file mode 100644 index 00000000..9aa269c8 Binary files /dev/null and b/libtmux-mcp/assets/logo.png differ diff --git a/libtmux-mcp/assets/logo.svg b/libtmux-mcp/assets/logo.svg new file mode 100644 index 00000000..c464f7fb --- /dev/null +++ b/libtmux-mcp/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/libtmux-scala-cats/README.md b/libtmux-scala-cats/README.md index 3e7f0702..e08ac5ea 100644 --- a/libtmux-scala-cats/README.md +++ b/libtmux-scala-cats/README.md @@ -1,5 +1,14 @@ # libtmux-scala-cats + +

+ + + libtmux for Scala + +

+ + **Cats Effect resources and FS2 observations for `libtmux-scala`.** This optional module adds scoped blocking execution and loss-aware control diff --git a/libtmux-scala-cats/assets/logo.png b/libtmux-scala-cats/assets/logo.png new file mode 100644 index 00000000..6d962e10 Binary files /dev/null and b/libtmux-scala-cats/assets/logo.png differ diff --git a/libtmux-scala-cats/assets/logo.svg b/libtmux-scala-cats/assets/logo.svg new file mode 100644 index 00000000..a442260e --- /dev/null +++ b/libtmux-scala-cats/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/libtmux-scala-ox/README.md b/libtmux-scala-ox/README.md index cfff76d5..b35d723b 100644 --- a/libtmux-scala-ox/README.md +++ b/libtmux-scala-ox/README.md @@ -1,5 +1,14 @@ # libtmux-scala-ox + +

+ + + libtmux for Scala + +

+ + **An Ox `Flow` over libtmux subscriptions and live views, for structured concurrency on virtual threads.** diff --git a/libtmux-scala-ox/assets/logo.png b/libtmux-scala-ox/assets/logo.png new file mode 100644 index 00000000..6d962e10 Binary files /dev/null and b/libtmux-scala-ox/assets/logo.png differ diff --git a/libtmux-scala-ox/assets/logo.svg b/libtmux-scala-ox/assets/logo.svg new file mode 100644 index 00000000..a442260e --- /dev/null +++ b/libtmux-scala-ox/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/libtmux-scala/README.md b/libtmux-scala/README.md index 7f737317..fe3207f1 100644 --- a/libtmux-scala/README.md +++ b/libtmux-scala/README.md @@ -1,5 +1,14 @@ # libtmux-scala + +

+ + + libtmux for Scala + +

+ + **Scala 3 collections and opaque handles over libtmux for Java.** Use Scala collections and explicit effects to inspect and operate tmux through diff --git a/libtmux-scala/assets/logo.png b/libtmux-scala/assets/logo.png new file mode 100644 index 00000000..6d962e10 Binary files /dev/null and b/libtmux-scala/assets/logo.png differ diff --git a/libtmux-scala/assets/logo.svg b/libtmux-scala/assets/logo.svg new file mode 100644 index 00000000..a442260e --- /dev/null +++ b/libtmux-scala/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/libtmux-workspace-cli/README.md b/libtmux-workspace-cli/README.md index 2133dd0c..0f1705ad 100644 --- a/libtmux-workspace-cli/README.md +++ b/libtmux-workspace-cli/README.md @@ -1,5 +1,14 @@ # libtmux-workspace-cli + +

+ + + libtmux for Java workspace + +

+ + **`tmux-workspace` loads, captures, converts and imports tmux workspaces.** Command names and flags follow [tmuxp](https://tmuxp.git-pull.com/) 1.74.0, and diff --git a/libtmux-workspace-cli/assets/logo.png b/libtmux-workspace-cli/assets/logo.png new file mode 100644 index 00000000..2425fe85 Binary files /dev/null and b/libtmux-workspace-cli/assets/logo.png differ diff --git a/libtmux-workspace-cli/assets/logo.svg b/libtmux-workspace-cli/assets/logo.svg new file mode 100644 index 00000000..ea210646 --- /dev/null +++ b/libtmux-workspace-cli/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/libtmux-workspace-cli/build.gradle.kts b/libtmux-workspace-cli/build.gradle.kts index b08f97f2..7567166e 100644 --- a/libtmux-workspace-cli/build.gradle.kts +++ b/libtmux-workspace-cli/build.gradle.kts @@ -13,7 +13,12 @@ application { applicationName = "tmux-workspace" } -distributions.main { contents { from("README.md") } } +distributions.main { + contents { + from("README.md") + from("assets") { into("assets") } + } +} tasks.jar { manifest { attributes("Automatic-Module-Name" to "io.github.libtmux.workspace.cli") } } diff --git a/libtmux-workspace/README.md b/libtmux-workspace/README.md index aae30a67..efa9fcb0 100644 --- a/libtmux-workspace/README.md +++ b/libtmux-workspace/README.md @@ -1,5 +1,14 @@ # libtmux-workspace + +

+ + + libtmux for Java workspace + +

+ + **Builds a session from a tmuxp-shaped YAML description.** Enough of [tmuxp](https://tmuxp.git-pull.com/)'s format to describe a workspace diff --git a/libtmux-workspace/assets/logo.png b/libtmux-workspace/assets/logo.png new file mode 100644 index 00000000..2425fe85 Binary files /dev/null and b/libtmux-workspace/assets/logo.png differ diff --git a/libtmux-workspace/assets/logo.svg b/libtmux-workspace/assets/logo.svg new file mode 100644 index 00000000..ea210646 --- /dev/null +++ b/libtmux-workspace/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/libtmux/README.md b/libtmux/README.md index 68031d89..f011a52b 100644 --- a/libtmux/README.md +++ b/libtmux/README.md @@ -1,5 +1,14 @@ # libtmux + +

+ + + libtmux for Java + +

+ + **Typed, blocking access to a tmux server. No runtime dependencies.** This is the whole library. Everything else in the repository is an adapter to diff --git a/libtmux/assets/logo.png b/libtmux/assets/logo.png new file mode 100644 index 00000000..e601df48 Binary files /dev/null and b/libtmux/assets/logo.png differ diff --git a/libtmux/assets/logo.svg b/libtmux/assets/logo.svg new file mode 100644 index 00000000..5f308932 --- /dev/null +++ b/libtmux/assets/logo.svg @@ -0,0 +1,2 @@ + +