Compare commits
2
Commits
df72981a9a
...
v0.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f9b39c6fe3 | ||
|
|
f9ebcb0296 |
No files matched your search
Generated
+1
-1
@@ -1038,7 +1038,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ink-notes"
|
name = "ink-notes"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytemuck",
|
"bytemuck",
|
||||||
"egui",
|
"egui",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "ink-notes"
|
name = "ink-notes"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "Latenzoptimierte Vektor-Notizbuch- und Inking-Anwendung für Linux"
|
description = "Latenzoptimierte Vektor-Notizbuch- und Inking-Anwendung für Linux"
|
||||||
repository = "https://gitea.pansi.eu/harald/ink-notes"
|
repository = "https://gitea.pansi.eu/harald/ink-notes"
|
||||||
|
|||||||
@@ -3,11 +3,12 @@
|
|||||||
Latenzoptimierte Vektor-Notizbuch- und Inking-Anwendung für Linux (Zorin OS 18 / Ubuntu 24.04).
|
Latenzoptimierte Vektor-Notizbuch- und Inking-Anwendung für Linux (Zorin OS 18 / Ubuntu 24.04).
|
||||||
|
|
||||||
### Highlights:
|
### Highlights:
|
||||||
|
- **Aktive Stylus-Unterstützung (Lazarite / MPP / AES)**: Natives Wayland-Tablet-Protokoll mit präziser Druck- und Neigungserfassung
|
||||||
|
- **Touchscreen Multi-Touch**: Stufenloses 2-Finger Pinch-to-Zoom und Panning mit umschaltbarem Finger-Zeichenmodus
|
||||||
- **Zwei-Stufen-Inking-Modell**: Kausale Echtzeit-Glättung via 1€-Filter & akausale Ecken-Erhaltung (Corner Preservation)
|
- **Zwei-Stufen-Inking-Modell**: Kausale Echtzeit-Glättung via 1€-Filter & akausale Ecken-Erhaltung (Corner Preservation)
|
||||||
- **Geometrie- und Formerkennung**: Geraden, Rechtecke, Kreise, Rauten, Polygone & Koordinatensysteme (Draw-and-Hold)
|
- **Geometrie- und Formerkennung**: Geraden, Rechtecke, Kreise, Rauten, Polygone & Koordinatensysteme (Draw-and-Hold)
|
||||||
- **Viewport**: Stufenloser Zoom (25% - 500%) und Panning
|
|
||||||
- **Multi-Dokumenten-Manager**: Unbegrenzte Notizbücher mit atomarem Autosave
|
- **Multi-Dokumenten-Manager**: Unbegrenzte Notizbücher mit atomarem Autosave
|
||||||
- **In-App Updater**: Automatische Versionsprüfung und Aktualisierung via Gitea Releases
|
- **In-App Updater**: Automatische Versionsprüfung und sichere Atomar-Aktualisierung via Gitea Releases
|
||||||
- **Vektor-PDF-Export**: Verlustfreie Ausgabe für Druck und Weitergabe
|
- **Vektor-PDF-Export**: Verlustfreie Ausgabe für Druck und Weitergabe
|
||||||
|
|
||||||
### Installation:
|
### Installation:
|
||||||
|
|||||||
@@ -177,33 +177,34 @@ upload_asset() {
|
|||||||
local encoded_name
|
local encoded_name
|
||||||
encoded_name=$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1]))' "${filename}")
|
encoded_name=$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1]))' "${filename}")
|
||||||
|
|
||||||
# Prüfen, ob bereits ein Asset mit demselben Namen existiert
|
# Prüfen, ob bereits Assets mit demselben Namen existieren (können mehrere sein)
|
||||||
local existing_id=""
|
local existing_ids=()
|
||||||
if [ -f "${ASSETS_LIST_FILE}" ] && [ -s "${ASSETS_LIST_FILE}" ]; then
|
if [ -f "${ASSETS_LIST_FILE}" ] && [ -s "${ASSETS_LIST_FILE}" ]; then
|
||||||
existing_id=$(python3 -c '
|
mapfile -t existing_ids < <(python3 -c '
|
||||||
import sys, json
|
import sys, json
|
||||||
try:
|
try:
|
||||||
assets = json.load(open(sys.argv[1]))
|
assets = json.load(open(sys.argv[1]))
|
||||||
target = sys.argv[2]
|
target = sys.argv[2]
|
||||||
for a in assets:
|
for a in assets:
|
||||||
if a.get("name") == target:
|
if a.get("name") == target and a.get("id"):
|
||||||
print(a.get("id", ""))
|
print(a.get("id"))
|
||||||
break
|
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
' "${ASSETS_LIST_FILE}" "${filename}")
|
' "${ASSETS_LIST_FILE}" "${filename}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${existing_id}" ]; then
|
for eid in "${existing_ids[@]}"; do
|
||||||
echo "Lösche bestehendes Asset '${filename}' (ID: ${existing_id}) vor Re-Upload..."
|
if [ -n "${eid}" ]; then
|
||||||
local del_status
|
echo "Lösche bestehendes Asset '${filename}' (ID: ${eid}) vor Re-Upload..."
|
||||||
del_status=$(curl -s -S -o /dev/null -w "%{http_code}" \
|
local del_status
|
||||||
-X DELETE "${API_BASE}/releases/${RELEASE_ID}/assets/${existing_id}" \
|
del_status=$(curl -s -S -o /dev/null -w "%{http_code}" \
|
||||||
-H "Authorization: token ${TOKEN}" || echo "000")
|
-X DELETE "${API_BASE}/releases/${RELEASE_ID}/assets/${eid}" \
|
||||||
if [ "${del_status}" != "204" ] && [ "${del_status}" != "200" ]; then
|
-H "Authorization: token ${TOKEN}" || echo "000")
|
||||||
echo "Warnung: Löschen von bestehendem Asset '${filename}' ergab HTTP ${del_status}."
|
if [ "${del_status}" != "204" ] && [ "${del_status}" != "200" ]; then
|
||||||
|
echo "Warnung: Löschen von bestehendem Asset '${filename}' ergab HTTP ${del_status}."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
done
|
||||||
|
|
||||||
echo "Lade Asset hoch: ${filename}..."
|
echo "Lade Asset hoch: ${filename}..."
|
||||||
local upload_res_file="$(mktemp)"
|
local upload_res_file="$(mktemp)"
|
||||||
|
|||||||
Reference in new issue
Block a user