Files
ink-notes/Cargo.toml
T
haraldandClaude Opus 5.5 a8aef30db7 feat(android): pen input, soft keyboard and exports to Downloads (Issues #42, #44)
- Pen vs. finger (#44): the patched winit hands Android pointers with
  tool type stylus/eraser to the app separately (take_pen_samples, with
  hover and button state) instead of as touch events. src/pen.rs turns
  them, like octotablet's events on the desktop, into one PenInput
  stream, so pen buttons, the eraser end and palm rejection work the
  same everywhere. Hover exit right before touch-down does not count as
  leaving; a pen without hover leaves 150 ms after lifting.
- Soft keyboard: shown via AndroidApp::show_soft_input when a text field
  gets focus, hidden when it loses it. The patched winit now fills
  KeyEvent::text, so typed characters reach egui.
- Exports (PDF, PNG, SVG) are written to the app folder and copied to
  Download/ink-notes through the MediaStore (Android 10+, via JNI).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 20:54:48 +01:00

106 lines
3.4 KiB
TOML

[package]
name = "ink-notes"
version = "0.39.3"
edition = "2021"
description = "Notizbuch-App für Stift, Touch und Maus unter Linux"
repository = "https://gitea.pansi.eu/harald/ink-notes"
license = "MIT"
readme = "README.md"
rust-version = "1.92"
[dependencies]
# Fenster- & Event-Handling (Wayland/X11, Stylus)
winit = { version = "0.29", features = ["rwh_06"] }
# Low-Level GPU-Rendering (Vulkan/Direct3D12 via WSLg)
wgpu = "0.19"
# Daten-Casting für GPU-Buffer
bytemuck = { version = "1.16", features = ["derive"] }
# Vektor-Mathematik
glam = { version = "0.27", features = ["serde"] }
# Asynchroner Starter für wgpu-Device-Setup
pollster = "0.3"
# PDF: writing the export (own writer in src/pdf_writer.rs) and merging imported PDFs
lopdf = { version = "0.46", default-features = false }
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.151"
# Immediate-Mode UI (Toolbar & Menüs)
egui = "0.27"
egui-wgpu = "0.27"
egui-winit = { version = "0.27", default-features = false, features = ["links"] }
webbrowser = "0.8"
semver = "1.0"
sha2 = "0.10"
ureq = { version = "2.10", default-features = false, features = ["tls", "gzip", "json"] }
url = "2.5"
# Bilder einfügen: Dekodieren (PNG/JPEG/GIF/WebP/BMP) und Systemzwischenablage
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "gif", "webp", "bmp"] }
minisign-verify = "0.3.0"
fs2 = "0.4"
hayro = "0.8"
hayro-svg = "0.8"
# Import von Xournal++-Notizbüchern (gzip-komprimiertes XML mit base64-Bildern)
flate2 = "1.1"
quick-xml = "0.41"
base64 = "0.22"
# Rnote-Import: SVG-Bilder (z. B. PDF-Seiten) rastern
resvg = { version = "0.49", default-features = false, features = ["raster-images"] }
# Text-Werkzeug: Schriftmetriken und Rasterung (Schriften aus egui)
ab_glyph = "0.2"
# Pen input with pressure on Linux (Wayland/X11) and Windows (Windows Ink)
[target.'cfg(not(target_os = "android"))'.dependencies]
octotablet = "0.1.0"
# Systemzwischenablage (Bilder und Text)
arboard = { version = "3", default-features = false, features = ["image-data"] }
# Bildschirmtastatur unter Wayland anfordern (eigenes text-input-Objekt, siehe src/osk.rs)
[target.'cfg(target_os = "linux")'.dependencies]
wayland-client = "0.31"
wayland-backend = { version = "0.3", features = ["client_system"] }
wayland-protocols = { version = "0.31", features = ["client", "unstable"] }
# Android (Issue #42): winit bound to the native activity. The library is built as
# cdylib and packed into an APK by scripts/package-android.sh
[target.'cfg(target_os = "android")'.dependencies]
winit = { version = "0.29", features = ["rwh_06", "android-native-activity"] }
android_logger = { version = "0.13", default-features = false }
# Saving exports to Downloads through Android's MediaStore
jni = { version = "0.21", default-features = false }
log = "0.4"
[package.metadata.android]
package = "eu.pansi.inknotes"
apk_name = "ink-notes"
[package.metadata.android.sdk]
min_sdk_version = 26
target_sdk_version = 34
[profile.dev]
opt-level = 1 # Erhöht Rendering-Performance auch im Debug-Modus
[profile.release]
lto = true
codegen-units = 1
opt-level = 3
strip = true
[dev-dependencies]
tempfile = "3.27.0"
# Prüft den WGSL-Shader in den Tests (dieselbe Version wie in wgpu 0.19)
naga = { version = "0.19", features = ["wgsl-in"] }
# winit 0.29 with touch support for the client-side title bar on Wayland (Issue #36),
# see vendor/winit/README.ink-notes.md
[patch.crates-io]
winit = { path = "vendor/winit" }