Skip to content

chore: bump version to 1.0.1 #4

chore: bump version to 1.0.1

chore: bump version to 1.0.1 #4

Workflow file for this run

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*