chore: bump version to 1.0.1 #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build & Release InputSync | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| inputs: | |
| create_release: | |
| description: 'Create GitHub Release' | |
| type: boolean | |
| default: false | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| jobs: | |
| # ── Linux .deb ────────────────────────────────────────────────────────────── | |
| build-linux: | |
| name: Linux x86_64 (.deb) | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update -q | |
| sudo apt-get install -y \ | |
| libwebkit2gtk-4.1-dev libgtk-3-dev \ | |
| libayatana-appindicator3-dev \ | |
| libx11-dev libxtst-dev \ | |
| build-essential curl wget file \ | |
| libssl-dev libglib2.0-dev patchelf | |
| - name: Install Rust stable | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: x86_64-unknown-linux-gnu | |
| - name: Rust cache | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: src-tauri | |
| - name: Setup Node 20 | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install npm deps | |
| run: npm ci | |
| - name: Build frontend | |
| run: npm run build | |
| - name: Install Tauri CLI | |
| run: cargo install tauri-cli --version "^2" --locked | |
| - name: Build Linux .deb | |
| run: cargo tauri build --bundles deb | |
| - name: Compute checksum | |
| run: | | |
| cd src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/deb 2>/dev/null \ | |
| || cd src-tauri/target/release/bundle/deb | |
| sha256sum *.deb > SHA256SUMS.txt | |
| cat SHA256SUMS.txt | |
| - name: Upload .deb artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux-deb | |
| path: | | |
| src-tauri/target/**/bundle/deb/*.deb | |
| src-tauri/target/**/bundle/deb/SHA256SUMS.txt | |
| if-no-files-found: error | |
| # ── Windows NSIS .exe ─────────────────────────────────────────────────────── | |
| build-windows: | |
| name: Windows x86_64 (.exe installer) | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust stable | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: x86_64-pc-windows-msvc | |
| - name: Rust cache | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: src-tauri | |
| - name: Setup Node 20 | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install npm deps | |
| run: npm ci | |
| - name: Build frontend | |
| run: npm run build | |
| - name: Install Tauri CLI | |
| run: cargo install tauri-cli --version "^2" --locked | |
| - name: Build Windows NSIS installer | |
| run: cargo tauri build --bundles nsis | |
| - name: Compute checksum | |
| shell: pwsh | |
| run: | | |
| $path = Get-ChildItem -Recurse -Filter "*.exe" ` | |
| src-tauri/target/release/bundle/nsis | Select-Object -First 1 | |
| Get-FileHash $path.FullName -Algorithm SHA256 | ` | |
| Select-Object Hash,Path | Format-List | |
| Get-FileHash $path.FullName -Algorithm SHA256 | ` | |
| ForEach-Object { "$($_.Hash) $($_.Path)" } | ` | |
| Out-File -FilePath "$(Split-Path $path.FullName)/SHA256SUMS.txt" | |
| - name: Upload installer artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows-exe | |
| path: | | |
| src-tauri/target/release/bundle/nsis/*.exe | |
| src-tauri/target/release/bundle/nsis/SHA256SUMS.txt | |
| if-no-files-found: error | |
| # ── GitHub Release ────────────────────────────────────────────────────────── | |
| release: | |
| name: Publish GitHub Release | |
| needs: [build-linux, build-windows] | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/') || github.event.inputs.create_release == 'true' | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Download Linux artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: linux-deb | |
| path: release-assets/linux | |
| - name: Download Windows artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: windows-exe | |
| path: release-assets/windows | |
| - name: List release assets | |
| run: find release-assets -type f | sort | |
| - name: Publish release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ github.ref_name }} | |
| name: "InputSync ${{ github.ref_name }}" | |
| draft: false | |
| prerelease: false | |
| files: | | |
| release-assets/linux/**/*.deb | |
| release-assets/linux/**/SHA256SUMS.txt | |
| release-assets/windows/**/*.exe | |
| release-assets/windows/**/SHA256SUMS.txt | |
| body: | | |
| ## InputSync ${{ github.ref_name }} | |
| Cross-platform software KVM switch — control multiple computers with one keyboard and mouse over your local network, with end-to-end encryption. | |
| --- | |
| ### What's New | |
| See [CHANGELOG.md](https://github.com/KaiCreates/InputSync/blob/main/CHANGELOG.md) for full details. | |
| --- | |
| ### Downloads | |
| | Platform | File | Notes | | |
| |----------|------|-------| | |
| | **Linux** (Ubuntu 22.04+, Debian 12+) | `InputSync_*_amd64.deb` | Recommended | | |
| | **Windows** (10/11 x64) | `InputSync_*_x64-setup.exe` | NSIS installer | | |
| --- | |
| ### Installation | |
| **Linux (.deb):** | |
| ```bash | |
| sudo dpkg -i InputSync_*_amd64.deb | |
| # Fix any missing deps: | |
| sudo apt-get install -f | |
| ``` | |
| **Windows:** | |
| Run `InputSync_*_x64-setup.exe` — click **More info → Run anyway** if SmartScreen appears (unsigned build). | |
| --- | |
| ### Verify Downloads (SHA256) | |
| Each download folder includes a `SHA256SUMS.txt`. Verify with: | |
| ```bash | |
| # Linux | |
| sha256sum -c SHA256SUMS.txt | |
| # Windows (PowerShell) | |
| Get-FileHash InputSync_*_x64-setup.exe -Algorithm SHA256 | |
| ``` | |
| --- | |
| ### Quick Start | |
| 1. **Server (your keyboard/mouse machine):** Open InputSync → Start Server → note the 6-character code + IP | |
| 2. **Client (machine to control):** Open InputSync → Enter code + IP → Connect | |
| 3. **Switch control:** Press **ScrollLock** or click the Capture toggle to start/stop forwarding input | |
| 4. All events are encrypted end-to-end (X25519 + ChaCha20-Poly1305) | |
| --- | |
| ### System Requirements | |
| **Linux:** Ubuntu 22.04+ / Debian 12+ · X11 display · `libwebkit2gtk-4.1-0` · `libxtst6` | |
| **Windows:** Windows 10 build 1903+ · 64-bit · WebView2 (bundled) | |
| **Network:** Both machines on same LAN · TCP :24800 + UDP :24801-24802 open | |
| --- | |
| *Built with Rust 🦀 + Tauri 2 + React* |