mirror of
https://github.com/storytold/deckcraft.git
synced 2026-10-28 20:47:15 -06:00
Rename SlideCraft to DeckCraft: crates, apps, binaries, app id, file extension (.deckcraft; .slidecraft files still open), packaging, docs; ROADMAP alpha and parity estimates
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
49278565ea
commit
ae9d525bce
@@ -0,0 +1,14 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=DeckCraft
|
||||
GenericName=Presentation
|
||||
Comment=Create and present slide decks
|
||||
Exec=deckcraft %F
|
||||
TryExec=deckcraft
|
||||
Icon=ai.storyteller.deckcraft
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
StartupWMClass=ai.storyteller.deckcraft
|
||||
Categories=Office;Presentation;
|
||||
MimeType=application/x-deckcraft;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.openxmlformats-officedocument.presentationml.slideshow;
|
||||
Keywords=presentation;slides;slide show;deck;pptx;keynote;powerpoint;
|
||||
+10
-10
@@ -2,17 +2,17 @@
|
||||
<!-- AppStream metadata (software centres, Flathub). Template: package.sh and the Flatpak
|
||||
manifest substitute @VERSION@ and @DATE@ from Cargo.toml and the build date. -->
|
||||
<component type="desktop-application">
|
||||
<id>ai.storyteller.slidecraft</id>
|
||||
<id>ai.storyteller.deckcraft</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>MIT OR Apache-2.0</project_license>
|
||||
<name>SlideCraft</name>
|
||||
<name>DeckCraft</name>
|
||||
<summary>Create and present slide decks</summary>
|
||||
<developer id="ai.storyteller">
|
||||
<name>Learning Machines LLC</name>
|
||||
</developer>
|
||||
<description>
|
||||
<p>
|
||||
SlideCraft builds presentations and slide shows: themes, layouts, shapes, pictures,
|
||||
DeckCraft builds presentations and slide shows: themes, layouts, shapes, pictures,
|
||||
tables, charts, transitions and animations. It opens and saves PowerPoint (.pptx) files
|
||||
and presents them full screen with a presenter view.
|
||||
</p>
|
||||
@@ -20,12 +20,12 @@
|
||||
Every action is also a command that the command line and AI agents (through MCP) can drive.
|
||||
</p>
|
||||
</description>
|
||||
<launchable type="desktop-id">ai.storyteller.slidecraft.desktop</launchable>
|
||||
<icon type="stock">ai.storyteller.slidecraft</icon>
|
||||
<launchable type="desktop-id">ai.storyteller.deckcraft.desktop</launchable>
|
||||
<icon type="stock">ai.storyteller.deckcraft</icon>
|
||||
<!-- Only url types known to appstream 0.15 (Ubuntu 22.04, where CI validates): no vcs-browser. -->
|
||||
<url type="homepage">https://getartcraft.com/apps/slidecraft</url>
|
||||
<url type="bugtracker">https://github.com/storytold/slidecraft/issues</url>
|
||||
<url type="help">https://github.com/storytold/slidecraft</url>
|
||||
<url type="homepage">https://getartcraft.com/apps/deckcraft</url>
|
||||
<url type="bugtracker">https://github.com/storytold/deckcraft/issues</url>
|
||||
<url type="help">https://github.com/storytold/deckcraft</url>
|
||||
<url type="contact">https://discord.gg/artcraft</url>
|
||||
<categories>
|
||||
<category>Office</category>
|
||||
@@ -49,8 +49,8 @@
|
||||
<control>pointing</control>
|
||||
</supports>
|
||||
<provides>
|
||||
<binary>slidecraft</binary>
|
||||
<mediatype>application/x-slidecraft</mediatype>
|
||||
<binary>deckcraft</binary>
|
||||
<mediatype>application/x-deckcraft</mediatype>
|
||||
</provides>
|
||||
<content_rating type="oars-1.1"/>
|
||||
<releases>
|
||||
+4
-4
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
|
||||
<mime-type type="application/x-slidecraft">
|
||||
<comment>SlideCraft presentation</comment>
|
||||
<mime-type type="application/x-deckcraft">
|
||||
<comment>DeckCraft presentation</comment>
|
||||
<sub-class-of type="application/zip"/>
|
||||
<glob pattern="*.slidecraft"/>
|
||||
<icon name="ai.storyteller.slidecraft"/>
|
||||
<glob pattern="*.deckcraft"/>
|
||||
<icon name="ai.storyteller.deckcraft"/>
|
||||
</mime-type>
|
||||
</mime-info>
|
||||
@@ -1,14 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=SlideCraft
|
||||
GenericName=Presentation
|
||||
Comment=Create and present slide decks
|
||||
Exec=slidecraft %F
|
||||
TryExec=slidecraft
|
||||
Icon=ai.storyteller.slidecraft
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
StartupWMClass=ai.storyteller.slidecraft
|
||||
Categories=Office;Presentation;
|
||||
MimeType=application/x-slidecraft;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.openxmlformats-officedocument.presentationml.slideshow;
|
||||
Keywords=presentation;slides;slide show;deck;pptx;keynote;powerpoint;
|
||||
+12
-12
@@ -1,20 +1,20 @@
|
||||
# Flatpak manifest for SlideCraft, ready for a Flathub submission.
|
||||
# Flatpak manifest for DeckCraft, ready for a Flathub submission.
|
||||
#
|
||||
# Flatpak builds run offline, so the crate sources must be vendored first. From the repo root:
|
||||
#
|
||||
# curl -fsSLO https://raw.githubusercontent.com/flatpak/flatpak-builder-tools/master/cargo/flatpak-cargo-generator.py
|
||||
# python3 flatpak-cargo-generator.py Cargo.lock -o packaging/linux/flatpak/cargo-sources.json
|
||||
# flatpak-builder --user --install --force-clean build-flatpak packaging/linux/flatpak/ai.storyteller.slidecraft.yml
|
||||
# flatpak run ai.storyteller.slidecraft
|
||||
# flatpak-builder --user --install --force-clean build-flatpak packaging/linux/flatpak/ai.storyteller.deckcraft.yml
|
||||
# flatpak run ai.storyteller.deckcraft
|
||||
#
|
||||
# For Flathub, replace the `dir` source with a `git` source pinned to a release tag and commit.
|
||||
id: ai.storyteller.slidecraft
|
||||
id: ai.storyteller.deckcraft
|
||||
runtime: org.freedesktop.Platform
|
||||
runtime-version: '25.08'
|
||||
sdk: org.freedesktop.Sdk
|
||||
sdk-extensions:
|
||||
- org.freedesktop.Sdk.Extension.rust-stable
|
||||
command: slidecraft
|
||||
command: deckcraft
|
||||
finish-args:
|
||||
- --share=ipc
|
||||
- --socket=wayland
|
||||
@@ -27,23 +27,23 @@ finish-args:
|
||||
build-options:
|
||||
append-path: /usr/lib/sdk/rust-stable/bin
|
||||
modules:
|
||||
- name: slidecraft
|
||||
- name: deckcraft
|
||||
buildsystem: simple
|
||||
build-options:
|
||||
env:
|
||||
CARGO_HOME: /run/build/slidecraft/cargo
|
||||
CARGO_HOME: /run/build/deckcraft/cargo
|
||||
CARGO_NET_OFFLINE: 'true'
|
||||
build-commands:
|
||||
- cargo --offline build --release --locked -p slidecraft
|
||||
- install -Dm755 target/release/slidecraft /app/bin/slidecraft
|
||||
- install -Dm644 packaging/linux/ai.storyteller.slidecraft.desktop /app/share/applications/ai.storyteller.slidecraft.desktop
|
||||
- install -Dm644 packaging/linux/ai.storyteller.slidecraft.mime.xml /app/share/mime/packages/ai.storyteller.slidecraft.xml
|
||||
- cargo --offline build --release --locked -p deckcraft
|
||||
- install -Dm755 target/release/deckcraft /app/bin/deckcraft
|
||||
- install -Dm644 packaging/linux/ai.storyteller.deckcraft.desktop /app/share/applications/ai.storyteller.deckcraft.desktop
|
||||
- install -Dm644 packaging/linux/ai.storyteller.deckcraft.mime.xml /app/share/mime/packages/ai.storyteller.deckcraft.xml
|
||||
- mkdir -p /app/share/icons && cp -R assets/app-icon/hicolor /app/share/icons/
|
||||
- >-
|
||||
version=$(awk '/^\[/{p=($0=="[workspace.package]");next} p&&$1=="version"{gsub(/[" ]/,"",$3);print $3;exit}' Cargo.toml);
|
||||
install -d /app/share/metainfo;
|
||||
sed -e "s/@VERSION@/$version/" -e "s/@DATE@/$(date -u +%Y-%m-%d)/"
|
||||
packaging/linux/ai.storyteller.slidecraft.metainfo.xml.in > /app/share/metainfo/ai.storyteller.slidecraft.metainfo.xml
|
||||
packaging/linux/ai.storyteller.deckcraft.metainfo.xml.in > /app/share/metainfo/ai.storyteller.deckcraft.metainfo.xml
|
||||
sources:
|
||||
- type: dir
|
||||
path: ../../..
|
||||
@@ -3,7 +3,7 @@
|
||||
# exports VERSION and NFPM_ARCH.
|
||||
#
|
||||
# nfpm package -f packaging/linux/nfpm.yaml -p deb -t dist/release/
|
||||
name: slidecraft
|
||||
name: deckcraft
|
||||
arch: ${NFPM_ARCH}
|
||||
platform: linux
|
||||
version: ${VERSION}
|
||||
@@ -12,16 +12,16 @@ version_schema: semver
|
||||
release: 1
|
||||
section: editors
|
||||
priority: optional
|
||||
maintainer: ${SLIDECRAFT_MAINTAINER}
|
||||
maintainer: ${DECKCRAFT_MAINTAINER}
|
||||
vendor: Learning Machines LLC
|
||||
homepage: https://getartcraft.com/apps/slidecraft
|
||||
homepage: https://getartcraft.com/apps/deckcraft
|
||||
license: MIT OR Apache-2.0
|
||||
description: |-
|
||||
Open-source, native presentation app that works the way PowerPoint users
|
||||
expect. Themes, layouts, shapes, pictures, tables, charts, transitions and
|
||||
animations; opens and saves PowerPoint (.pptx) files; full-screen slide show
|
||||
with presenter view; GPU rendering (wgpu).
|
||||
Includes slidecraft-cli, a headless renderer and command runner.
|
||||
Includes deckcraft-cli, a headless renderer and command runner.
|
||||
|
||||
# The binaries link only glibc and libgcc_s directly. Windowing (X11/Wayland, xkbcommon) and the
|
||||
# GPU (Vulkan, EGL/GL) are loaded at runtime, so they are dependencies/recommendations here
|
||||
@@ -56,11 +56,11 @@ overrides:
|
||||
- xdg-desktop-portal
|
||||
|
||||
contents:
|
||||
- src: ${STAGE}/usr/bin/slidecraft
|
||||
dst: /usr/bin/slidecraft
|
||||
- src: ${STAGE}/usr/bin/deckcraft
|
||||
dst: /usr/bin/deckcraft
|
||||
file_info: { mode: 0755 }
|
||||
- src: ${STAGE}/usr/bin/slidecraft-cli
|
||||
dst: /usr/bin/slidecraft-cli
|
||||
- src: ${STAGE}/usr/bin/deckcraft-cli
|
||||
dst: /usr/bin/deckcraft-cli
|
||||
file_info: { mode: 0755 }
|
||||
- src: ${STAGE}/usr/share/
|
||||
dst: /usr/share/
|
||||
|
||||
+19
-19
@@ -1,10 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
# Build and package SlideCraft for Linux (<arch> is x86_64 or aarch64):
|
||||
# Build and package DeckCraft for Linux (<arch> is x86_64 or aarch64):
|
||||
#
|
||||
# $DIST/slidecraft-<version>-linux-<arch>.AppImage any distro with glibc >= the build host's
|
||||
# $DIST/slidecraft-<version>-linux-<arch>.deb Debian, Ubuntu, Mint, Pop!_OS, ...
|
||||
# $DIST/slidecraft-<version>-linux-<arch>.rpm Fedora, openSUSE, RHEL, ...
|
||||
# $DIST/slidecraft-<version>-linux-<arch>.tar.gz plain FHS-style tree (bin/, share/)
|
||||
# $DIST/deckcraft-<version>-linux-<arch>.AppImage any distro with glibc >= the build host's
|
||||
# $DIST/deckcraft-<version>-linux-<arch>.deb Debian, Ubuntu, Mint, Pop!_OS, ...
|
||||
# $DIST/deckcraft-<version>-linux-<arch>.rpm Fedora, openSUSE, RHEL, ...
|
||||
# $DIST/deckcraft-<version>-linux-<arch>.tar.gz plain FHS-style tree (bin/, share/)
|
||||
#
|
||||
# Usage: packaging/linux/package.sh [--skip-build] [--formats "appimage deb rpm tar"]
|
||||
#
|
||||
@@ -15,7 +15,7 @@ set -euo pipefail
|
||||
# shellcheck source=../common.sh
|
||||
. "$(dirname "${BASH_SOURCE[0]}")/../common.sh"
|
||||
HERE="$ROOT/packaging/linux"
|
||||
APP_ID=ai.storyteller.slidecraft
|
||||
APP_ID=ai.storyteller.deckcraft
|
||||
|
||||
SKIP_BUILD=0
|
||||
FORMATS="appimage deb rpm tar"
|
||||
@@ -34,13 +34,13 @@ case "$ARCH" in
|
||||
aarch64 | arm64) ARCH=aarch64; DEB_ARCH=arm64 ;;
|
||||
*) echo "unsupported architecture $ARCH" >&2; exit 2 ;;
|
||||
esac
|
||||
export SLIDECRAFT_MAINTAINER="${SLIDECRAFT_MAINTAINER:-SlideCraft maintainers <slidecraft@storyteller.ai>}"
|
||||
BASENAME="slidecraft-$VERSION-linux-$ARCH"
|
||||
export DECKCRAFT_MAINTAINER="${DECKCRAFT_MAINTAINER:-DeckCraft maintainers <deckcraft@storyteller.ai>}"
|
||||
BASENAME="deckcraft-$VERSION-linux-$ARCH"
|
||||
|
||||
echo "==> SlideCraft $VERSION for Linux $ARCH ($FORMATS)"
|
||||
echo "==> DeckCraft $VERSION for Linux $ARCH ($FORMATS)"
|
||||
|
||||
if [ "$SKIP_BUILD" = 0 ]; then
|
||||
(cd "$ROOT" && cargo build --release --locked -p slidecraft -p slidecraft-cli)
|
||||
(cd "$ROOT" && cargo build --release --locked -p deckcraft -p deckcraft-cli)
|
||||
fi
|
||||
BIN="$CARGO_TARGET_DIR/release"
|
||||
WORK="$CARGO_TARGET_DIR/linux-package"
|
||||
@@ -48,18 +48,18 @@ STAGE="$WORK/root"
|
||||
rm -rf "$WORK"
|
||||
|
||||
# ---- stage an FHS tree (shared by every format) -------------------------------------------------
|
||||
install -Dm755 "$BIN/slidecraft" "$STAGE/usr/bin/slidecraft"
|
||||
install -Dm755 "$BIN/slidecraft-cli" "$STAGE/usr/bin/slidecraft-cli"
|
||||
strip "$STAGE/usr/bin/slidecraft" "$STAGE/usr/bin/slidecraft-cli" 2>/dev/null || true
|
||||
install -Dm755 "$BIN/deckcraft" "$STAGE/usr/bin/deckcraft"
|
||||
install -Dm755 "$BIN/deckcraft-cli" "$STAGE/usr/bin/deckcraft-cli"
|
||||
strip "$STAGE/usr/bin/deckcraft" "$STAGE/usr/bin/deckcraft-cli" 2>/dev/null || true
|
||||
install -Dm644 "$HERE/$APP_ID.desktop" "$STAGE/usr/share/applications/$APP_ID.desktop"
|
||||
install -Dm644 "$HERE/$APP_ID.mime.xml" "$STAGE/usr/share/mime/packages/$APP_ID.xml"
|
||||
mkdir -p "$STAGE/usr/share/metainfo"
|
||||
sed -e "s/@VERSION@/$VERSION/g" -e "s/@DATE@/$SLIDECRAFT_BUILD_DATE/g" \
|
||||
sed -e "s/@VERSION@/$VERSION/g" -e "s/@DATE@/$DECKCRAFT_BUILD_DATE/g" \
|
||||
"$HERE/$APP_ID.metainfo.xml.in" >"$STAGE/usr/share/metainfo/$APP_ID.metainfo.xml"
|
||||
mkdir -p "$STAGE/usr/share/icons"
|
||||
cp -R "$ROOT/assets/app-icon/hicolor" "$STAGE/usr/share/icons/"
|
||||
mkdir -p "$STAGE/usr/share/doc/slidecraft"
|
||||
copy_docs "$STAGE/usr/share/doc/slidecraft"
|
||||
mkdir -p "$STAGE/usr/share/doc/deckcraft"
|
||||
copy_docs "$STAGE/usr/share/doc/deckcraft"
|
||||
|
||||
if command -v desktop-file-validate >/dev/null; then
|
||||
desktop-file-validate "$STAGE/usr/share/applications/$APP_ID.desktop"
|
||||
@@ -92,10 +92,10 @@ fi
|
||||
|
||||
# ---- AppImage -----------------------------------------------------------------------------------
|
||||
if has appimage; then
|
||||
APPDIR="$WORK/SlideCraft.AppDir"
|
||||
APPDIR="$WORK/DeckCraft.AppDir"
|
||||
cp -R "$STAGE" "$APPDIR"
|
||||
mv "$APPDIR/usr/share/doc" "$WORK/doc-unused"
|
||||
ln -s usr/bin/slidecraft "$APPDIR/AppRun"
|
||||
ln -s usr/bin/deckcraft "$APPDIR/AppRun"
|
||||
cp "$HERE/$APP_ID.desktop" "$APPDIR/$APP_ID.desktop"
|
||||
cp "$ROOT/assets/app-icon/hicolor/256x256/apps/$APP_ID.png" "$APPDIR/$APP_ID.png"
|
||||
ln -s "$APP_ID.png" "$APPDIR/.DirIcon"
|
||||
@@ -115,6 +115,6 @@ if has appimage; then
|
||||
echo "wrote $OUT"
|
||||
fi
|
||||
|
||||
"$STAGE/usr/bin/slidecraft-cli" --version
|
||||
"$STAGE/usr/bin/deckcraft-cli" --version
|
||||
echo "==> done"
|
||||
ls -lh "$DIST"
|
||||
|
||||
Reference in New Issue
Block a user