Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 44 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,4 +105,47 @@ jobs:
name: OratioText-windows-x86_64
path: |
src-tauri/target/x86_64-pc-windows-msvc/release/bundle/**/*.msi
src-tauri/target/x86_64-pc-windows-msvc/release/bundle/**/*.exe
src-tauri/target/x86_64-pc-windows-msvc/release/bundle/**/*.exe

build-linux-x86_64:
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-unknown-linux-gnu

- name: Install system dependencies (Linux)
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
librsvg2-dev \
patchelf \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
ffmpeg

- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: src-tauri

- name: Build Tauri app
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: "--target x86_64-unknown-linux-gnu --bundles deb,appimage"

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: OratioText-linux-x86_64
path: |
src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/**/*.deb
src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/**/*.AppImage
52 changes: 52 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,55 @@ jobs:
releaseBody: "Download the attached assets to install OratioText."
releaseDraft: false
prerelease: ${{ steps.prerelease.outputs.is_prerelease == 'true' }}

release-linux-x86_64:
runs-on: ubuntu-22.04
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-unknown-linux-gnu

- name: Install system dependencies (Linux)
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
librsvg2-dev \
patchelf \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
ffmpeg

- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: src-tauri

- name: Evaluate pre-release status
id: prerelease
run: |
if [[ "${{ github.ref_name }}" == *"-rc"* || "${{ github.ref_name }}" == *"-beta"* || "${{ github.ref_name }}" == *"-alpha"* ]]; then
echo "is_prerelease=true" >> "$GITHUB_OUTPUT"
else
echo "is_prerelease=false" >> "$GITHUB_OUTPUT"
fi
shell: bash

- name: Build and Publish Tauri app
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: "--target x86_64-unknown-linux-gnu --bundles deb,appimage"
tagName: ${{ github.ref_name }}
releaseName: "OratioText ${{ github.ref_name }}"
releaseBody: "Download the attached assets to install OratioText."
releaseDraft: false
prerelease: ${{ steps.prerelease.outputs.is_prerelease == 'true' }}
14 changes: 9 additions & 5 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@

## Prerequisites

| Requirement | macOS | Windows |
|---|---|---|
| Rust | [rustup.rs](https://rustup.rs/) | [rustup.rs](https://rustup.rs/) |
| Node.js | `brew install node` | [nodejs.org](https://nodejs.org/) |
| FFmpeg | `brew install ffmpeg` | `choco install ffmpeg` |
| Requirement | macOS | Windows | Linux (Debian/Ubuntu) |
|---|---|---|---|
| Rust | [rustup.rs](https://rustup.rs/) | [rustup.rs](https://rustup.rs/) | [rustup.rs](https://rustup.rs/) |
| Node.js | `brew install node` | [nodejs.org](https://nodejs.org/) | `sudo apt install nodejs npm` |
| FFmpeg | `brew install ffmpeg` | `choco install ffmpeg` | `sudo apt install ffmpeg` |
| System libs | — | — | `sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf` |

## Local Build

Expand All @@ -27,6 +28,7 @@ cargo tauri build
Output:
- **macOS**: `src-tauri/target/release/bundle/dmg/OratioText_*.dmg`
- **Windows**: `src-tauri/target/release/bundle/msi/OratioText_*.msi`
- **Linux**: `src-tauri/target/release/bundle/deb/OratioText_*.deb` and `src-tauri/target/release/bundle/appimage/OratioText_*.AppImage`

## GitHub Actions CI

Expand All @@ -45,6 +47,7 @@ The workflow (`.github/workflows/build.yml`) uses the official [Tauri Action](ht
| macOS Apple Silicon | `aarch64-apple-darwin` | `.dmg` |
| macOS Intel | `x86_64-apple-darwin` | `.dmg` |
| Windows | `x86_64-pc-windows-msvc` | `.msi` / `.exe` |
| Linux | `x86_64-unknown-linux-gnu` | `.deb` / `.AppImage` |

### Accessing Build Artifacts

Expand Down Expand Up @@ -75,6 +78,7 @@ src/ # Frontend (HTML/CSS/JS)
Models are **not bundled** with the app. They are downloaded from [Hugging Face](https://huggingface.co/ggerganov/whisper.cpp) on first use and cached in:
- **macOS**: `~/Library/Application Support/OratioText/models/`
- **Windows**: `%APPDATA%/OratioText/models/`
- **Linux**: `~/.local/share/OratioText/models/`

| Model | Size | Quality |
|---|---|---|
Expand Down
28 changes: 26 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@ Built with [Tauri v2](https://tauri.app/) and [whisper.cpp](https://github.com/g

You can download the latest installers and packages for your operating system from the [GitHub Releases](https://github.com/kylethedeveloper/OratioText/releases) page.

Choose the appropriate `.dmg` or `.msi` file to install OratioText easily!
Choose the appropriate file for your platform:
- **macOS**: `.dmg`
- **Windows**: `.msi` or `.exe`
- **Linux**: `.deb` or `.AppImage`

## Basic Usage

Expand All @@ -37,7 +40,7 @@ Choose the appropriate `.dmg` or `.msi` file to install OratioText easily!

## System Requirements

- macOS 10.15+ or Windows 10+
- macOS 10.15+, Windows 10+, or Linux (Ubuntu 22.04+ / equivalent)
- FFmpeg installed and in PATH
- Internet connection for initial model download

Expand All @@ -53,6 +56,27 @@ xattr -cr /Applications/OratioText.app

Then open the app normally.

### Linux Installation Note

If you downloaded the `.AppImage`, you need to make it executable before running:

```bash
chmod +x OratioText_*.AppImage
./OratioText_*.AppImage
```

For the `.deb` package, install it with:

```bash
sudo dpkg -i OratioText_*.deb
```

Make sure you have FFmpeg and the required WebKit2GTK runtime libraries installed:

```bash
sudo apt install ffmpeg libwebkit2gtk-4.1-0
```

## Development

### Prerequisites
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "oratiotext"
version = "1.0.3"
version = "1.0.4"
description = "A cross-platform desktop application for converting speech to text using Whisper"
authors = ["kylethedeveloper"]
edition = "2021"
Expand Down
2 changes: 2 additions & 0 deletions src-tauri/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]

fn main() {
oratiotext_lib::run()
}
2 changes: 1 addition & 1 deletion src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/crates/tauri-config-schema/schema.json",
"productName": "OratioText",
"version": "1.0.3",
"version": "1.0.4",
"identifier": "com.oratiotext.app",
"build": {
"frontendDist": "../src"
Expand Down
Loading