From 1034b1874c21847caaa7c41d13f94fe8e5f9ffeb Mon Sep 17 00:00:00 2001 From: Ivan Date: Thu, 16 Apr 2026 02:40:24 -0500 Subject: [PATCH] feat(docs): update READMEs --- README.md | 39 ++++++++++++++++++++-- android/README.md | 83 +---------------------------------------------- lang/README.de.md | 55 +++++++++++++++++++++++++++++-- lang/README.it.md | 55 +++++++++++++++++++++++++++++-- lang/README.ja.md | 55 +++++++++++++++++++++++++++++-- lang/README.ru.md | 55 +++++++++++++++++++++++++++++-- lang/README.zh.md | 55 +++++++++++++++++++++++++++++-- 7 files changed, 298 insertions(+), 99 deletions(-) diff --git a/README.md b/README.md index 6fbf2ff..2711839 100644 --- a/README.md +++ b/README.md @@ -193,11 +193,46 @@ task dist:fe:rpm - Linux DEB: `x64`, `arm64` - Windows: `x64`, `arm64` (build scripts available) - macOS: build scripts available (`arm64`, `universal`) for local build environments -- Android: build workflow and Android project are present in this repository +- Android: native APKs — ABIs `arm64-v8a`, `x86_64`, plus universal ## Android -Use the dedicated docs: +MeshChatX supports native Android APK builds (not only Termux). + +### Build APKs from source + +From repo root: + +```bash +# 1) Build Chaquopy wheels used by android/app/build.gradle +bash scripts/build-android-wheels-local.sh + +# 2) Build both APK variants +cd android +./gradlew --no-daemon :app:assembleDebug :app:assembleRelease +``` + +APK outputs (ABI splits plus a universal APK; see `splits { abi { ... } }` in `android/app/build.gradle`): + +Debug (`android/app/build/outputs/apk/debug/`): + +- `app-arm64-v8a-debug.apk` (ARM64 devices) +- `app-x86_64-debug.apk` (x86_64 emulators) +- `app-universal-debug.apk` (all bundled ABIs in one package) + +Release (`android/app/build/outputs/apk/release/`): + +- `app-arm64-v8a-release-unsigned.apk` +- `app-x86_64-release-unsigned.apk` +- `app-universal-release-unsigned.apk` + +Notes: + +- Release outputs are unsigned by default unless you configure signing. +- If you only need one variant, run `:app:assembleDebug` or `:app:assembleRelease`. +- Android targets `arm64-v8a` and `x86_64` ABIs as configured in `android/app/build.gradle`. + +Additional docs: - [`docs/meshchatx_on_android_with_termux.md`](docs/meshchatx_on_android_with_termux.md) - [`android/README.md`](android/README.md) diff --git a/android/README.md b/android/README.md index c142e09..e6420ec 100644 --- a/android/README.md +++ b/android/README.md @@ -4,85 +4,4 @@ This directory contains the Android app build configuration using Chaquopy to em ## Architecture -The app uses a **WebView** to display the existing Vue.js frontend. The Python server runs in the background via Chaquopy and serves the web interface on `http://127.0.0.1:8000`. - -**No Kotlin frontend needed** - we reuse the entire existing Vue.js web frontend! - -## Prerequisites - -- Android Studio (latest version) -- Android SDK with API level 24+ (Android 7.0+) -- Chaquopy license (free for open source projects, see https://chaquo.com/chaquopy/pricing/) - -## Setup - -1. **Initialize Gradle Wrapper** (if not already done): - - ```bash - task android-init - ``` - - Or manually: - - ```bash - cd android - gradle wrapper --gradle-version 8.2 - ``` - -2. **Get Chaquopy License**: - - Sign up at https://chaquo.com/chaquopy/ - - Add your license key to `android/local.properties`: - ``` - chaquopy.license=your-license-key-here - ``` - -3. **Prepare Build**: - ```bash - task android-prepare - ``` - This will: - - Build the frontend - - Copy the `meshchatx` package to `app/src/main/python/` - - Initialize Gradle wrapper if needed - -## Building - -### Using Task (Recommended) - -```bash -# Build debug APK -task android-build - -# Build release APK (requires signing config) -task android-build-release -``` - -### Using Gradle Directly - -```bash -cd android -./gradlew assembleDebug -``` - -Or open the `android` directory in Android Studio and build from there. - -## Configuration - -The server is configured to: - -- Run on `127.0.0.1:8000` (localhost only) -- Use HTTPS for local WebView access -- Run in headless mode (no browser launch) - -## Notes - -- The app requires network permissions for RNS/mesh networking -- Storage permissions are needed for identity and message storage -- The Python server runs in a background thread -- The WebView loads the Vue.js frontend after a 2-second delay to allow server startup - -## Troubleshooting - -- If the WebView shows a blank page, check logcat for Python errors -- Ensure all Python dependencies are listed in `app/build.gradle` chaquopy.pip block -- Some native dependencies (like RNS) may need additional configuration +The app uses a **WebView** to display the existing Vue.js frontend. The Python server runs in the background via Chaquopy and serves the web interface on `https://127.0.0.1:8000`. \ No newline at end of file diff --git a/lang/README.de.md b/lang/README.de.md index 94362a0..2898a57 100644 --- a/lang/README.de.md +++ b/lang/README.de.md @@ -1,6 +1,6 @@ # Reticulum MeshChatX -[English README](../README.md) | [Русский](README.ru.md) | [Italiano](README.it.md) | [中文](README.zh.md) | [日本語](README.ja.md) +[English](../README.md) | [Русский](README.ru.md) | [Italiano](README.it.md) | [中文](README.zh.md) | [日本語](README.ja.md) Ein umfassend modifizierter und funktionsreicher Fork von Reticulum MeshChat von Liam Cottle. @@ -146,6 +146,18 @@ Um das native `meshchatx`-Programm (Alias: `meshchat`) mit zusaetzlicher Dateisy Dieselbe Seite erscheint in der in-app-**Dokumentation** (MeshChatX-Docs), wenn sie aus den gebuendelten oder synchronisierten `meshchatx-docs`-Dateien ausgeliefert wird. +## Linux-Desktop: Emoji-Schriften + +Die Emoji-Auswahl rendert Standard-Unicode-Emoji mit den Systemschriften (Electron/Chromium). Wenn Emoji als leere Kaestchen („Tofu“) erscheinen, installieren Sie ein Farb-Emoji-Paket und starten Sie die App neu. + +| Distribution (Beispiele) | Paket | +| ---------------------------- | --------------------------------------------------------------------- | +| Arch Linux, Artix, Manjaro | `noto-fonts-emoji` (`sudo pacman -S noto-fonts-emoji`) | +| Debian, Ubuntu | `fonts-noto-color-emoji` (`sudo apt install fonts-noto-color-emoji`) | +| Fedora | `google-noto-emoji-color-fonts` | + +Nach der Installation bei Bedarf `fc-cache -fv` ausfuehren. Optional: `noto-fonts` fuer breitere Symbolabdeckung bei minimalen Installationen. + ## Desktop-Pakete aus Quellcode bauen Diese Skripte sind in `package.json` und `Taskfile.yml` definiert. @@ -176,15 +188,52 @@ task dist:fe:rpm ## Architekturunterstuetzung -- Docker: `amd64`, `arm64` +- Docker-Image: `amd64`, `arm64` - Linux AppImage: `x64`, `arm64` - Linux DEB: `x64`, `arm64` - Windows: `x64`, `arm64` (Build-Skripte vorhanden) - macOS: Build-Skripte vorhanden (`arm64`, `universal`) fuer lokale Build-Umgebungen -- Android: Projekt und CI-Workflow im Repository enthalten +- Android: native APKs — ABIs `arm64-v8a`, `x86_64`, plus universal ## Android +MeshChatX unterstuetzt native Android-APK-Builds (nicht nur Termux). + +### APKs aus Quellcode bauen + +Vom Repository-Root: + +```bash +# 1) Chaquopy-Wheels gemaess android/app/build.gradle bauen +bash scripts/build-android-wheels-local.sh + +# 2) Beide APK-Varianten bauen +cd android +./gradlew --no-daemon :app:assembleDebug :app:assembleRelease +``` + +APK-Ausgaben (ABI-Splits plus universelles APK; siehe `splits { abi { ... } }` in `android/app/build.gradle`): + +Debug (`android/app/build/outputs/apk/debug/`): + +- `app-arm64-v8a-debug.apk` (ARM64-Geraete) +- `app-x86_64-debug.apk` (x86_64-Emulatoren) +- `app-universal-debug.apk` (alle gebundelten ABIs in einem Paket) + +Release (`android/app/build/outputs/apk/release/`): + +- `app-arm64-v8a-release-unsigned.apk` +- `app-x86_64-release-unsigned.apk` +- `app-universal-release-unsigned.apk` + +Hinweise: + +- Release-Ausgaben sind standardmaessig unsigniert, sofern keine Signatur konfiguriert ist. +- Wenn nur eine Variante noetig ist: `:app:assembleDebug` oder `:app:assembleRelease`. +- Android zielt auf die ABIs `arm64-v8a` und `x86_64` gemaess `android/app/build.gradle`. + +Weitere Dokumentation: + - [`docs/meshchatx_on_android_with_termux.md`](../docs/meshchatx_on_android_with_termux.md) - [`android/README.md`](../android/README.md) diff --git a/lang/README.it.md b/lang/README.it.md index 74d43b1..5471039 100644 --- a/lang/README.it.md +++ b/lang/README.it.md @@ -1,6 +1,6 @@ # Reticulum MeshChatX -[English README](../README.md) | [Deutsch](README.de.md) | [Русский](README.ru.md) | [中文](README.zh.md) | [日本語](README.ja.md) +[English](../README.md) | [Deutsch](README.de.md) | [Русский](README.ru.md) | [中文](README.zh.md) | [日本語](README.ja.md) Un fork ampiamente modificato e ricco di funzionalita di Reticulum MeshChat di Liam Cottle. @@ -146,6 +146,18 @@ Per eseguire il binario nativo `meshchatx` (alias: `meshchat`) con isolamento ag La stessa pagina compare nell'elenco **Documentazione** in-app (documentazione MeshChatX) quando viene servita dai file `meshchatx-docs` inclusi o sincronizzati. +## Desktop Linux: font emoji + +Il selettore emoji mostra gli emoji Unicode standard usando i font di sistema (Electron/Chromium). Se compaiono quadrati vuoti ("tofu"), installate un pacchetto emoji a colori e riavviate l'app. + +| Famiglia (esempi) | Pacchetto | +| -------------------------- | ------------------------------------------------------------------------- | +| Arch Linux, Artix, Manjaro | `noto-fonts-emoji` (`sudo pacman -S noto-fonts-emoji`) | +| Debian, Ubuntu | `fonts-noto-color-emoji` (`sudo apt install fonts-noto-color-emoji`) | +| Fedora | `google-noto-emoji-color-fonts` | + +Dopo l'installazione, eseguite `fc-cache -fv` se i glifi non compaiono fino al prossimo accesso. Opzionale: `noto-fonts` per una copertura simboli più ampia su installazioni minime. + ## Compilazione pacchetti desktop da sorgente Gli script sono definiti in `package.json` e `Taskfile.yml`. @@ -176,15 +188,52 @@ task dist:fe:rpm ## Supporto architetture -- Docker: `amd64`, `arm64` +- Immagine Docker: `amd64`, `arm64` - Linux AppImage: `x64`, `arm64` - Linux DEB: `x64`, `arm64` - Windows: `x64`, `arm64` (script di build disponibili) - macOS: script di build disponibili (`arm64`, `universal`) per ambienti di build locali -- Android: progetto e workflow CI presenti nel repository +- Android: APK nativi — `arm64-v8a`, `x86_64`, universale ## Android +MeshChatX supporta build APK Android native (non solo Termux). + +### Build APK da sorgente + +Dalla root del repository: + +```bash +# 1) Build delle wheel Chaquopy usate da android/app/build.gradle +bash scripts/build-android-wheels-local.sh + +# 2) Build di entrambe le varianti APK +cd android +./gradlew --no-daemon :app:assembleDebug :app:assembleRelease +``` + +Output APK (split degli ABI e APK universale; vedere `splits { abi { ... } }` in `android/app/build.gradle`): + +Debug (`android/app/build/outputs/apk/debug/`): + +- `app-arm64-v8a-debug.apk` (dispositivi ARM64) +- `app-x86_64-debug.apk` (emulatori x86_64) +- `app-universal-debug.apk` (tutti gli ABI inclusi in un unico pacchetto) + +Release (`android/app/build/outputs/apk/release/`): + +- `app-arm64-v8a-release-unsigned.apk` +- `app-x86_64-release-unsigned.apk` +- `app-universal-release-unsigned.apk` + +Note: + +- Gli output release sono non firmati di default se non configurate le firme. +- Se serve una sola variante: `:app:assembleDebug` o `:app:assembleRelease`. +- Android punta agli ABI `arm64-v8a` e `x86_64` come in `android/app/build.gradle`. + +Documentazione aggiuntiva: + - [`docs/meshchatx_on_android_with_termux.md`](../docs/meshchatx_on_android_with_termux.md) - [`android/README.md`](../android/README.md) diff --git a/lang/README.ja.md b/lang/README.ja.md index c687de1..42aa6a9 100644 --- a/lang/README.ja.md +++ b/lang/README.ja.md @@ -1,6 +1,6 @@ # Reticulum MeshChatX -[English README](../README.md) | [Deutsch](README.de.md) | [Italiano](README.it.md) | [Русский](README.ru.md) | [中文](README.zh.md) +[English](../README.md) | [Deutsch](README.de.md) | [Italiano](README.it.md) | [Русский](README.ru.md) | [中文](README.zh.md) Liam Cottle 氏による Reticulum MeshChat を大幅に改修・機能拡張したフォークです。 @@ -146,6 +146,18 @@ poetry run python -m meshchatx.meshchat --headless --host 127.0.0.1 同梱または同期された `meshchatx-docs` から配信される場合、アプリ内の **ドキュメント**(MeshChatX ドキュメント)一覧にも同じページが表示されます。 +## Linux デスクトップ: 絵文字フォント + +絵文字ピッカーはシステムフォント(Electron/Chromium)で標準 Unicode 絵文字を描画します。絵文字が空の四角(「豆腐」)になる場合はカラー絵文字パッケージをインストールし、アプリを再起動してください。 + +| ディストリビューション(例) | パッケージ | +| ---------------------------- | ---------- | +| Arch Linux, Artix, Manjaro | `noto-fonts-emoji`(`sudo pacman -S noto-fonts-emoji`) | +| Debian, Ubuntu | `fonts-noto-color-emoji`(`sudo apt install fonts-noto-color-emoji`) | +| Fedora | `google-noto-emoji-color-fonts` | + +インストール後も表示されない場合は `fc-cache -fv` を実行してください。最小インストールでは記号の網羅用に `noto-fonts` も任意で入れてください。 + ## ソースからのデスクトップパッケージビルド スクリプトは `package.json` と `Taskfile.yml` に定義されています。 @@ -176,15 +188,52 @@ task dist:fe:rpm ## アーキテクチャサポート -- Docker: `amd64`, `arm64` +- Docker イメージ: `amd64`, `arm64` - Linux AppImage: `x64`, `arm64` - Linux DEB: `x64`, `arm64` - Windows: `x64`, `arm64`(ビルドスクリプトあり) - macOS: ローカルビルド向けにビルドスクリプトあり(`arm64`, `universal`) -- Android: リポジトリにプロジェクトと CI ワークフローあり +- Android: ネイティブ APK — ABI `arm64-v8a`、`x86_64`、および universal ## Android +MeshChatX はネイティブ Android APK のビルドに対応しています(Termux のみに限りません)。 + +### ソースから APK をビルド + +リポジトリのルートで: + +```bash +# 1) android/app/build.gradle で使う Chaquopy 用ホイールをビルド +bash scripts/build-android-wheels-local.sh + +# 2) 両方の APK バリアントをビルド +cd android +./gradlew --no-daemon :app:assembleDebug :app:assembleRelease +``` + +APK の出力(ABI 分割と universal APK。`android/app/build.gradle` の `splits { abi { ... } }` を参照): + +デバッグ(`android/app/build/outputs/apk/debug/`): + +- `app-arm64-v8a-debug.apk`(ARM64 端末) +- `app-x86_64-debug.apk`(x86_64 エミュレータ) +- `app-universal-debug.apk`(同梱 ABI を 1 パッケージに) + +リリース(`android/app/build/outputs/apk/release/`): + +- `app-arm64-v8a-release-unsigned.apk` +- `app-x86_64-release-unsigned.apk` +- `app-universal-release-unsigned.apk` + +備考: + +- リリース出力は署名を設定しない限りデフォルトで未署名です。 +- どちらか一方でよい場合は `:app:assembleDebug` または `:app:assembleRelease`。 +- Android の対象 ABI は `android/app/build.gradle` で設定されている `arm64-v8a` と `x86_64` です。 + +追加ドキュメント: + - [`docs/meshchatx_on_android_with_termux.md`](../docs/meshchatx_on_android_with_termux.md) - [`android/README.md`](../android/README.md) diff --git a/lang/README.ru.md b/lang/README.ru.md index 7022a52..a368b3f 100644 --- a/lang/README.ru.md +++ b/lang/README.ru.md @@ -1,6 +1,6 @@ # Reticulum MeshChatX -[English README](../README.md) | [Deutsch](README.de.md) | [Italiano](README.it.md) | [中文](README.zh.md) | [日本語](README.ja.md) +[English](../README.md) | [Deutsch](README.de.md) | [Italiano](README.it.md) | [中文](README.zh.md) | [日本語](README.ja.md) Существенно доработанный и функционально расширенный форк Reticulum MeshChat от Liam Cottle. @@ -146,6 +146,18 @@ poetry run python -m meshchatx.meshchat --headless --host 127.0.0.1 Та же страница отображается во встроенной **Документации** (документация MeshChatX), когда она отдаётся из `meshchatx-docs`. +## Linux на ПК: шрифты эмодзи + +Выбор эмодзи отображает стандартные Unicode-эмодзи системными шрифтами (Electron/Chromium). Если вместо них пустые квадраты («тофу»), установите пакет цветных эмодзи и перезапустите приложение. + +| Семейство (примеры) | Пакет | +| -------------------------- | ----- | +| Arch Linux, Artix, Manjaro | `noto-fonts-emoji` (`sudo pacman -S noto-fonts-emoji`) | +| Debian, Ubuntu | `fonts-noto-color-emoji` (`sudo apt install fonts-noto-color-emoji`) | +| Fedora | `google-noto-emoji-color-fonts` | + +После установки при необходимости выполните `fc-cache -fv`. Опционально: `noto-fonts` для лучшего покрытия символов на минимальных установках. + ## Сборка настольных пакетов из исходников Скрипты заданы в `package.json` и `Taskfile.yml`. @@ -176,15 +188,52 @@ task dist:fe:rpm ## Поддержка архитектур -- Docker: `amd64`, `arm64` +- Образ Docker: `amd64`, `arm64` - Linux AppImage: `x64`, `arm64` - Linux DEB: `x64`, `arm64` - Windows: `x64`, `arm64` (скрипты сборки есть) - macOS: скрипты сборки (`arm64`, `universal`) для локальных сред -- Android: проект и CI в репозитории +- Android: нативные APK — ABI `arm64-v8a`, `x86_64`, плюс universal ## Android +MeshChatX поддерживает нативные Android APK (не только Termux). + +### Сборка APK из исходников + +Из корня репозитория: + +```bash +# 1) Собрать колёса Chaquopy для android/app/build.gradle +bash scripts/build-android-wheels-local.sh + +# 2) Собрать обе вариации APK +cd android +./gradlew --no-daemon :app:assembleDebug :app:assembleRelease +``` + +Выходные APK (разбиение по ABI и универсальный APK; см. `splits { abi { ... } }` в `android/app/build.gradle`): + +Отладка (`android/app/build/outputs/apk/debug/`): + +- `app-arm64-v8a-debug.apk` (устройства ARM64) +- `app-x86_64-debug.apk` (эмуляторы x86_64) +- `app-universal-debug.apk` (все включённые ABI в одном пакете) + +Релиз (`android/app/build/outputs/apk/release/`): + +- `app-arm64-v8a-release-unsigned.apk` +- `app-x86_64-release-unsigned.apk` +- `app-universal-release-unsigned.apk` + +Примечания: + +- Релизные артефакты по умолчанию не подписаны, если не настроена подпись. +- Если нужна одна вариация: `:app:assembleDebug` или `:app:assembleRelease`. +- Целевые ABI — `arm64-v8a` и `x86_64` согласно `android/app/build.gradle`. + +Дополнительная документация: + - [`docs/meshchatx_on_android_with_termux.md`](../docs/meshchatx_on_android_with_termux.md) - [`android/README.md`](../android/README.md) diff --git a/lang/README.zh.md b/lang/README.zh.md index ab6f597..4f595bf 100644 --- a/lang/README.zh.md +++ b/lang/README.zh.md @@ -1,6 +1,6 @@ # Reticulum MeshChatX -[English README](../README.md) | [Deutsch](README.de.md) | [Italiano](README.it.md) | [Русский](README.ru.md) | [日本語](README.ja.md) +[English](../README.md) | [Deutsch](README.de.md) | [Italiano](README.it.md) | [Русский](README.ru.md) | [日本語](README.ja.md) Liam Cottle 开发的 Reticulum MeshChat 的一个功能丰富的深度修改分支。 @@ -146,6 +146,18 @@ poetry run python -m meshchatx.meshchat --headless --host 127.0.0.1 在提供已捆绑或已同步的 `meshchatx-docs` 时,应用内 **文档**(MeshChatX 文档)列表亦会显示同一页面。 +## Linux 桌面:绘文字字体 + +绘文字选择器使用系统字体(Electron/Chromium)渲染标准 Unicode 绘文字。若显示为空白方框(“豆腐块”),请安装彩色绘文字字体包并重启应用。 + +| 发行版(示例) | 软件包 | +| ------------------------ | ------ | +| Arch Linux、Artix、Manjaro | `noto-fonts-emoji`(`sudo pacman -S noto-fonts-emoji`) | +| Debian、Ubuntu | `fonts-noto-color-emoji`(`sudo apt install fonts-noto-color-emoji`) | +| Fedora | `google-noto-emoji-color-fonts` | + +安装后若仍异常,可运行 `fc-cache -fv`。可选:最小安装可再装 `noto-fonts` 以覆盖更多符号。 + ## 从源码构建桌面包 脚本定义于 `package.json` 与 `Taskfile.yml`。 @@ -176,15 +188,52 @@ task dist:fe:rpm ## 架构支持 -- Docker: `amd64`, `arm64` +- Docker 镜像: `amd64`, `arm64` - Linux AppImage: `x64`, `arm64` - Linux DEB: `x64`, `arm64` - Windows: `x64`, `arm64`(提供构建脚本) - macOS: 提供构建脚本(`arm64`、`universal`),适用于本地构建环境 -- Android: 仓库内含项目与 CI 工作流 +- Android: 原生 APK — ABI `arm64-v8a`、`x86_64` 与 universal ## Android +MeshChatX 支持构建原生 Android APK(不仅限于 Termux)。 + +### 从源码构建 APK + +在仓库根目录执行: + +```bash +# 1) 构建 android/app/build.gradle 所需的 Chaquopy 轮子 +bash scripts/build-android-wheels-local.sh + +# 2) 构建两种 APK 变体 +cd android +./gradlew --no-daemon :app:assembleDebug :app:assembleRelease +``` + +APK 输出(ABI 分包与 universal APK;见 `android/app/build.gradle` 中的 `splits { abi { ... } }`): + +调试(`android/app/build/outputs/apk/debug/`): + +- `app-arm64-v8a-debug.apk`(ARM64 设备) +- `app-x86_64-debug.apk`(x86_64 模拟器) +- `app-universal-debug.apk`(所有已打包 ABI 的单包) + +发布(`android/app/build/outputs/apk/release/`): + +- `app-arm64-v8a-release-unsigned.apk` +- `app-x86_64-release-unsigned.apk` +- `app-universal-release-unsigned.apk` + +说明: + +- 若未配置签名,发布构建默认未签名。 +- 若只需一种变体,可运行 `:app:assembleDebug` 或 `:app:assembleRelease`。 +- Android 目标 ABI 为 `android/app/build.gradle` 中配置的 `arm64-v8a` 与 `x86_64`。 + +更多文档: + - [`docs/meshchatx_on_android_with_termux.md`](../docs/meshchatx_on_android_with_termux.md) - [`android/README.md`](../android/README.md)