From 7939f156a3da93b23410d7b11ff4f460654c6ffa Mon Sep 17 00:00:00 2001
From: firtoz <108406948+firtoz@users.noreply.github.com>
Date: Wed, 18 Mar 2026 13:27:15 +0000
Subject: [PATCH 1/2] feat(arch): add Arch Linux / AUR packaging and
recordly-aur helper link
- packaging/arch: PKGBUILD for recordly-bin (prebuilt AppImage) with
maintainer, upstream MIT license source and install to
/usr/share/licenses/recordly-bin, pinned AppImage and LICENSE sha256sums.
- recordly.desktop: Icon=dev.recordly.app, empty MimeType= removed.
- Add PKGBUILD.from-source and recordly-local.desktop for recordly-bin-local
(build-from-source install alongside release).
- packaging/arch/README: canonical packaging, install and AUR instructions,
link to recordly-aur helper repo for release-triggered AUR updates.
- Main README: Arch section with yay/makepkg install and note that AUR
publishing is handled by the recordly-aur helper repo.
- package.json: package:arch script (makepkg -si from packaging/arch).
- .gitignore: makepkg and packaging artifacts.
Made-with: Cursor
---
.gitignore | 7 ++++
README.md | 21 ++++++++++++
package.json | 1 +
packaging/arch/.SRCINFO | 17 ++++++++++
packaging/arch/LICENSE | 12 +++++++
packaging/arch/PKGBUILD | 49 +++++++++++++++++++++++++++
packaging/arch/PKGBUILD.from-source | 44 ++++++++++++++++++++++++
packaging/arch/README.md | 31 +++++++++++++++++
packaging/arch/recordly-local.desktop | 9 +++++
packaging/arch/recordly.desktop | 9 +++++
10 files changed, 200 insertions(+)
create mode 100644 packaging/arch/.SRCINFO
create mode 100644 packaging/arch/LICENSE
create mode 100644 packaging/arch/PKGBUILD
create mode 100644 packaging/arch/PKGBUILD.from-source
create mode 100644 packaging/arch/README.md
create mode 100644 packaging/arch/recordly-local.desktop
create mode 100644 packaging/arch/recordly.desktop
diff --git a/.gitignore b/.gitignore
index 82f2650..1aeebc3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,10 @@ release/**
# Native capture build artifacts
electron/native/wgc-capture/build/
electron/native/cursor-monitor/build/
+
+# Arch packaging (makepkg)
+packaging/arch/src/
+packaging/arch/pkg/
+packaging/arch/*.pkg.tar.zst
+packaging/arch/*.pkg.tar.xz
+packaging/arch/*.AppImage
diff --git a/README.md b/README.md
index 1ec1873..8ea5f35 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,7 @@ Language: EN | [简中](README.zh-CN.md)
+
### Create polished, pro-grade screen recordings.
@@ -132,6 +133,26 @@ https://github.com/webadderall/Recordly/releases
---
+## Arch Linux / Manjaro (yay)
+
+From the AUR:
+
+```bash
+yay -S recordly-bin
+```
+
+Or build and install from this repo:
+
+```bash
+git clone https://github.com/webadderall/Recordly.git && cd Recordly/packaging/arch && makepkg -si
+```
+
+From the repo root you can run `npm run package:arch` instead.
+
+The same PKGBUILD lives in this repo under `packaging/arch/`. AUR publishing and release-triggered updates are handled by the [recordly-aur](https://github.com/firtoz/recordly-aur) helper repo. For AUR-specific issues or the current maintainer, see the [recordly-bin AUR page](https://aur.archlinux.org/packages/recordly-bin).
+
+---
+
## Build from source
```bash
diff --git a/package.json b/package.json
index a00e9fc..9bca8fb 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,7 @@
"build:mac": "npm run build:platform-native-helpers && tsc && vite build && electron-builder --mac",
"build:win": "npm run build:platform-native-helpers && tsc && vite build && electron-builder --win",
"build:linux": "npm run build:platform-native-helpers && tsc && vite build && electron-builder --linux",
+ "package:arch": "cd packaging/arch && makepkg -si",
"i18n:check": "node scripts/i18n-check.mjs",
"test": "vitest --run",
"test:watch": "vitest"
diff --git a/packaging/arch/.SRCINFO b/packaging/arch/.SRCINFO
new file mode 100644
index 0000000..0aa4ac5
--- /dev/null
+++ b/packaging/arch/.SRCINFO
@@ -0,0 +1,17 @@
+pkgbase = recordly-bin
+ pkgdesc = Open-source screen recorder and editor with auto-zoom, cursor effects, and polished video export
+ pkgver = 1.0.9
+ pkgrel = 1
+ url = https://github.com/webadderall/Recordly
+ arch = x86_64
+ license = MIT
+ depends = fuse2
+ options = !strip
+ source = https://github.com/webadderall/Recordly/releases/download/v1.0.9/Recordly-linux-x64.AppImage
+ source = recordly.desktop
+ source = https://raw.githubusercontent.com/webadderall/Recordly/main/LICENSE
+ sha256sums = 09ec420d9101d2e256eb3539fe7688fe6bdd60c47c313b53b9d7e5198cddd0f5
+ sha256sums = SKIP
+ sha256sums = ebd7d285818a531c49145a2e429b2cfc6dad9f3292263cf33aedfb0b23ebdac9
+
+pkgname = recordly-bin
diff --git a/packaging/arch/LICENSE b/packaging/arch/LICENSE
new file mode 100644
index 0000000..9535dc5
--- /dev/null
+++ b/packaging/arch/LICENSE
@@ -0,0 +1,12 @@
+Copyright (C) 2025 by the AUR package maintainer(s).
+
+Permission to use, copy, modify, and/or distribute this packaging (PKGBUILD and
+associated files) for any purpose with or without fee is hereby granted.
+
+THE PACKAGING IS PROVIDED "AS IS" AND THE AUTHOR(S) DISCLAIM ALL WARRANTIES
+WITH REGARD TO THIS PACKAGING INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS PACKAGING.
diff --git a/packaging/arch/PKGBUILD b/packaging/arch/PKGBUILD
new file mode 100644
index 0000000..294631d
--- /dev/null
+++ b/packaging/arch/PKGBUILD
@@ -0,0 +1,49 @@
+# Maintainer: firtoz
+# Upstream: https://github.com/webadderall/Recordly
+
+pkgname=recordly-bin
+pkgver=1.0.9
+pkgrel=1
+pkgdesc="Open-source screen recorder and editor with auto-zoom, cursor effects, and polished video export"
+arch=(x86_64)
+url="https://github.com/webadderall/Recordly"
+license=(MIT)
+depends=(fuse2)
+source=(
+ "https://github.com/webadderall/Recordly/releases/download/v${pkgver}/Recordly-linux-x64.AppImage"
+ "recordly.desktop"
+ "https://raw.githubusercontent.com/webadderall/Recordly/main/LICENSE"
+)
+sha256sums=(
+ '09ec420d9101d2e256eb3539fe7688fe6bdd60c47c313b53b9d7e5198cddd0f5' # AppImage v${pkgver}
+ 'SKIP'
+ 'ebd7d285818a531c49145a2e429b2cfc6dad9f3292263cf33aedfb0b23ebdac9' # Upstream MIT LICENSE
+)
+options=(!strip)
+
+package() {
+ install -d "$pkgdir/opt/recordly"
+ install -Dm755 "$srcdir/Recordly-linux-x64.AppImage" "$pkgdir/opt/recordly/Recordly.AppImage"
+
+ install -d "$pkgdir/usr/bin"
+ cat > "$pkgdir/usr/bin/recordly" << 'EOF'
+#!/bin/sh
+exec /opt/recordly/Recordly.AppImage "$@"
+EOF
+ chmod 755 "$pkgdir/usr/bin/recordly"
+
+ install -Dm644 "$srcdir/recordly.desktop" "$pkgdir/usr/share/applications/dev.recordly.app.desktop"
+ install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ # Extract icons from AppImage so Icon=dev.recordly.app in the .desktop resolves
+ cd "$srcdir"
+ chmod +x Recordly-linux-x64.AppImage
+ ./Recordly-linux-x64.AppImage --appimage-extract
+ for size in 16 24 32 48 64 128 256 512 1024; do
+ src="squashfs-root/usr/share/icons/hicolor/${size}x${size}/apps/recordly.png"
+ if [ -f "$src" ]; then
+ install -Dm644 "$src" "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/dev.recordly.app.png"
+ fi
+ done
+ rm -rf squashfs-root
+}
diff --git a/packaging/arch/PKGBUILD.from-source b/packaging/arch/PKGBUILD.from-source
new file mode 100644
index 0000000..46595f4
--- /dev/null
+++ b/packaging/arch/PKGBUILD.from-source
@@ -0,0 +1,44 @@
+# Build-from-source: npm run build:linux && npm run package:arch copies release/Recordly.AppImage here as Recordly-linux-x64.AppImage, then makepkg -p PKGBUILD.from-source -si
+# Installs as recordly-bin-local (separate from recordly-bin) so both can coexist.
+pkgname=recordly-bin-local
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Recordly screen recorder (local build from source)"
+arch=(x86_64)
+url="https://github.com/webadderall/Recordly"
+license=(MIT)
+depends=(fuse2)
+source=(
+ "Recordly-linux-x64.AppImage"
+ "recordly-local.desktop"
+)
+sha256sums=(
+ SKIP
+ SKIP
+)
+options=(!strip)
+
+package() {
+ install -d "$pkgdir/opt/recordly-local"
+ install -Dm755 "$srcdir/Recordly-linux-x64.AppImage" "$pkgdir/opt/recordly-local/Recordly.AppImage"
+
+ install -d "$pkgdir/usr/bin"
+ cat > "$pkgdir/usr/bin/recordly-local" << 'EOF'
+#!/bin/sh
+exec /opt/recordly-local/Recordly.AppImage "$@"
+EOF
+ chmod 755 "$pkgdir/usr/bin/recordly-local"
+
+ install -Dm644 "$srcdir/recordly-local.desktop" "$pkgdir/usr/share/applications/dev.recordly.app.local.desktop"
+
+ cd "$srcdir"
+ chmod +x Recordly-linux-x64.AppImage
+ ./Recordly-linux-x64.AppImage --appimage-extract
+ for size in 16 24 32 48 64 128 256 512 1024; do
+ src="squashfs-root/usr/share/icons/hicolor/${size}x${size}/apps/recordly.png"
+ if [ -f "$src" ]; then
+ install -Dm644 "$src" "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/dev.recordly.app.local.png"
+ fi
+ done
+ rm -rf squashfs-root
+}
diff --git a/packaging/arch/README.md b/packaging/arch/README.md
new file mode 100644
index 0000000..4c8085a
--- /dev/null
+++ b/packaging/arch/README.md
@@ -0,0 +1,31 @@
+# Arch Linux / AUR packaging for Recordly
+
+This directory is the **canonical** source for Arch packaging. It contains the PKGBUILD and helper files for installing Recordly on Arch Linux and Manjaro (via the AUR or locally with `makepkg`). Upstream keeps these files in sync with release behaviour (AppImage name, desktop entries, icon paths). AUR publishing and automation (e.g. pushing to `aur.archlinux.org`) are handled externally by the AUR maintainer; see the [AUR package page](https://aur.archlinux.org/packages/recordly-bin) and the [recordly-aur](https://github.com/firtoz/recordly-aur) helper repo.
+
+For issues or update requests about the **recordly-bin** AUR package, see the [AUR package page](https://aur.archlinux.org/packages/recordly-bin) for the current maintainer.
+
+## Build and install from this repo
+
+```bash
+cd packaging/arch
+makepkg -si
+```
+
+From the repo root you can run `npm run package:arch` instead.
+
+**Local build** (install as `recordly-bin-local` / “Recordly (Local)” alongside the release): from the repo root run `npm run install:linux`. Uses `PKGBUILD.from-source` and `recordly-local.desktop`.
+
+## Updating the package
+
+When a new release is published on [GitHub Releases](https://github.com/webadderall/Recordly/releases):
+
+1. Set `pkgver` in `PKGBUILD` to the new version (e.g. `1.0.10`). Release tags use the form `vX.Y.Z`.
+2. If you changed `PKGBUILD` metadata, regenerate `.SRCINFO`:
+ ```bash
+ makepkg --printsrcinfo > .SRCINFO
+ ```
+3. For the AUR: commit and push your changes to the `recordly-bin` AUR package repo (branch `master`).
+
+## Submitting to the AUR
+
+See the main repo [README](../../README.md) “Arch Linux / Manjaro (yay)” section and the [AUR submission guidelines](https://wiki.archlinux.org/title/AUR_submission_guidelines). Copy `PKGBUILD`, `.SRCINFO`, `LICENSE`, and `recordly.desktop` into your AUR clone and push to the `master` branch.
diff --git a/packaging/arch/recordly-local.desktop b/packaging/arch/recordly-local.desktop
new file mode 100644
index 0000000..fda58a2
--- /dev/null
+++ b/packaging/arch/recordly-local.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Recordly (Local)
+Comment=Screen recorder and editor with auto-zoom and cursor effects (build from source)
+Exec=recordly-local %U
+Icon=dev.recordly.app.local
+Terminal=false
+Type=Application
+Categories=AudioVideo;Video;
+StartupWMClass=Recordly
diff --git a/packaging/arch/recordly.desktop b/packaging/arch/recordly.desktop
new file mode 100644
index 0000000..867df9a
--- /dev/null
+++ b/packaging/arch/recordly.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Recordly
+Comment=Screen recorder and editor with auto-zoom and cursor effects
+Exec=/opt/recordly/Recordly.AppImage %U
+Icon=dev.recordly.app
+Terminal=false
+Type=Application
+Categories=AudioVideo;Video;
+StartupWMClass=Recordly
From d41dc4fe480ffa87c32512b6ab4900248b8d3120 Mon Sep 17 00:00:00 2001
From: firtoz <108406948+firtoz@users.noreply.github.com>
Date: Wed, 18 Mar 2026 14:23:28 +0000
Subject: [PATCH 2/2] feat(arch): add install script for local build and update
documentation
- package.json: added `install:linux` script for building and installing the local version of Recordly.
- README.md: updated to include instructions for local builds from source.
- packaging/arch/README.md: enhanced local build section with detailed steps for installation and usage of the local package.
---
README.md | 2 ++
package.json | 1 +
packaging/arch/README.md | 20 ++++++++++++++++++--
3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 8ea5f35..125afce 100644
--- a/README.md
+++ b/README.md
@@ -149,6 +149,8 @@ git clone https://github.com/webadderall/Recordly.git && cd Recordly/packaging/a
From the repo root you can run `npm run package:arch` instead.
+**Local build from source** (installs as `recordly-bin-local` / “Recordly (Local)” alongside the AUR package): from the repo root run `npm run install:linux`. This builds the Linux AppImage, copies it to `packaging/arch/`, and runs `makepkg -p PKGBUILD.from-source -si` so you get a system package without downloading the release binary.
+
The same PKGBUILD lives in this repo under `packaging/arch/`. AUR publishing and release-triggered updates are handled by the [recordly-aur](https://github.com/firtoz/recordly-aur) helper repo. For AUR-specific issues or the current maintainer, see the [recordly-bin AUR page](https://aur.archlinux.org/packages/recordly-bin).
---
diff --git a/package.json b/package.json
index 9bca8fb..e25ec48 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,7 @@
"build:mac": "npm run build:platform-native-helpers && tsc && vite build && electron-builder --mac",
"build:win": "npm run build:platform-native-helpers && tsc && vite build && electron-builder --win",
"build:linux": "npm run build:platform-native-helpers && tsc && vite build && electron-builder --linux",
+ "install:linux": "npm run build:linux && cp release/Recordly.AppImage packaging/arch/Recordly-linux-x64.AppImage && (cd packaging/arch && makepkg -p PKGBUILD.from-source -si)",
"package:arch": "cd packaging/arch && makepkg -si",
"i18n:check": "node scripts/i18n-check.mjs",
"test": "vitest --run",
diff --git a/packaging/arch/README.md b/packaging/arch/README.md
index 4c8085a..eb5a3cb 100644
--- a/packaging/arch/README.md
+++ b/packaging/arch/README.md
@@ -13,7 +13,23 @@ makepkg -si
From the repo root you can run `npm run package:arch` instead.
-**Local build** (install as `recordly-bin-local` / “Recordly (Local)” alongside the release): from the repo root run `npm run install:linux`. Uses `PKGBUILD.from-source` and `recordly-local.desktop`.
+## Local build from source
+
+To install a **local build** as `recordly-bin-local` (shows as "Recordly (Local)" in the app menu, alongside the release package):
+
+From the **repo root**:
+
+```bash
+npm run install:linux
+```
+
+This will:
+
+1. Run `npm run build:linux` (build the Linux AppImage).
+2. Copy `release/Recordly.AppImage` to `packaging/arch/Recordly-linux-x64.AppImage`.
+3. Run `makepkg -p PKGBUILD.from-source -si` to build and install the `recordly-bin-local` package.
+
+You end up with `recordly-local` on your PATH and a "Recordly (Local)" desktop entry. Uses `PKGBUILD.from-source` and `recordly-local.desktop`.
## Updating the package
@@ -28,4 +44,4 @@ When a new release is published on [GitHub Releases](https://github.com/webadder
## Submitting to the AUR
-See the main repo [README](../../README.md) “Arch Linux / Manjaro (yay)” section and the [AUR submission guidelines](https://wiki.archlinux.org/title/AUR_submission_guidelines). Copy `PKGBUILD`, `.SRCINFO`, `LICENSE`, and `recordly.desktop` into your AUR clone and push to the `master` branch.
+See the main repo [README](../../README.md) "Arch Linux / Manjaro (yay)" section and the [AUR submission guidelines](https://wiki.archlinux.org/title/AUR_submission_guidelines). Copy `PKGBUILD`, `.SRCINFO`, `LICENSE`, and `recordly.desktop` into your AUR clone and push to the `master` branch.