Compare commits

..
130 Commits
Author SHA1 Message Date
arabianq c2be0fdd81 deploy: 4555a002ef 2026-09-17 17:13:31 +00:00
arabianq e94aa19886 deploy: 4555a002ef 2026-09-17 17:10:25 +00:00
arabianq 417bcccb03 deploy: e2168421bb 2026-09-10 19:06:06 +00:00
arabianq 5e4ff7679f deploy: e2168421bb 2026-09-09 19:26:51 +00:00
arabianq 26aad57538 deploy: e2168421bb 2026-09-09 18:50:10 +00:00
arabianq ef6193f220 deploy: e2168421bb 2026-09-09 18:47:02 +00:00
arabianq 738664ee01 deploy: 5c3f20e153 2026-09-09 18:34:09 +00:00
arabianq a22864d591 deploy: 5c3f20e153 2026-09-09 18:30:18 +00:00
arabianq 3ca6ba8f48 deploy: 6eff8b2c6d 2026-09-09 10:23:21 +00:00
arabianq 3194b66143 deploy: 6eff8b2c6d 2026-09-09 10:18:40 +00:00
arabianq f992d57b88 deploy: dd13eee0df 2026-09-09 08:42:12 +00:00
arabianq 6cae1ef10c deploy: dd13eee0df 2026-09-09 08:40:03 +00:00
arabianq 0b1ec82b8d deploy: 3d1bc24c21 2026-09-09 08:36:19 +00:00
arabianq 5278cd5662 deploy: 3d1bc24c21 2026-09-09 08:33:56 +00:00
arabianq 0467c14f1f deploy: 53fabcee75 2026-09-01 18:13:35 +00:00
arabianq f19cef451e deploy: 53fabcee75 2026-09-01 18:09:10 +00:00
arabianq dc25fe9a2d deploy: 53fabcee75 2026-08-31 16:24:51 +00:00
arabianq 04c5b8d6be deploy: 53fabcee75 2026-08-31 16:19:24 +00:00
arabianq 089d0ce17e deploy: 17146d2ce6 2026-08-31 01:45:05 +00:00
arabianq 34ba3aff6b deploy: 17146d2ce6 2026-08-31 01:39:40 +00:00
arabianq 97a058bd23 deploy: 7ad69243cc 2026-08-30 21:11:08 +00:00
arabianq d9bc79733e deploy: 7ad69243cc 2026-08-30 21:09:24 +00:00
arabianq 74007651a6 deploy: a1184588a0 2026-08-29 10:50:17 +00:00
arabianq 7331da1cb1 deploy: a1184588a0 2026-08-29 10:48:38 +00:00
arabianq 25b0b1ef1e deploy: 9b65384cfd 2026-08-10 13:49:23 +00:00
arabianq 5a525ffe7d deploy: 9b65384cfd 2026-08-10 13:46:25 +00:00
arabianq 4c3c670d41 deploy: 59c7f25a38 2026-08-10 13:42:39 +00:00
arabianq 6444b3b1a9 deploy: 2b544d2e63 2026-08-10 13:41:01 +00:00
arabianq 9f1122842f deploy: b939709047 2026-08-05 12:07:33 +00:00
arabianq 0c106a2316 deploy: b939709047 2026-08-05 12:03:33 +00:00
arabianq a45c20d6a0 deploy: c75e073774 2026-07-30 18:10:16 +00:00
arabianq e393e71c34 deploy: c75e073774 2026-07-30 18:07:12 +00:00
arabianq 6fc85a3178 deploy: c75e073774 2026-07-30 08:31:09 +00:00
arabianq 8d8e2de0a5 deploy: 051e81d9f7 2026-07-30 08:28:24 +00:00
arabianq 738ce8f76d deploy: c75e073774 2026-07-30 08:25:16 +00:00
arabianq 3f53ee31cf deploy: 051e81d9f7 2026-07-30 08:20:35 +00:00
arabianq fb6ab8e751 deploy: 8854c401a9 2026-07-30 07:46:17 +00:00
arabianq ef7803c9eb deploy: 8854c401a9 2026-07-30 07:41:58 +00:00
arabianq 331b44231b deploy: c9f30e09d7 2026-07-30 07:40:38 +00:00
arabianq ea003ce24d deploy: c9f30e09d7 2026-07-30 07:33:48 +00:00
arabianq 3ed7f155c7 deploy: 0d0b5f9f29 2026-07-26 19:41:37 +00:00
arabianq ace9dafeec deploy: 0d0b5f9f29 2026-07-26 19:37:52 +00:00
arabianq f5e4b3a145 deploy: 0d0b5f9f29 2026-07-26 19:34:30 +00:00
arabianq 8a2175d0ea deploy: 0d0b5f9f29 2026-07-26 19:32:32 +00:00
arabianq 8166cd9d20 deploy: 425c1df61e 2026-07-26 19:25:08 +00:00
arabianq 5052bf787b deploy: 425c1df61e 2026-07-26 19:22:01 +00:00
arabianq e18cf9607e deploy: 425c1df61e 2026-07-26 19:00:36 +00:00
arabianq 90a7a5a2d5 deploy: 425c1df61e 2026-07-26 18:54:12 +00:00
arabianq 6f523b7a6b deploy: cfa31200d4 2026-07-26 18:45:38 +00:00
arabianq 34973cd4ad deploy: cfa31200d4 2026-07-26 18:39:19 +00:00
arabianq a5a605bfc8 deploy: 389640ee0a 2026-07-26 18:34:24 +00:00
arabianq a61dc9f8be deploy: 389640ee0a 2026-07-26 18:28:07 +00:00
arabianq 6e3554e403 deploy: 7b87dc02dd 2026-07-26 18:04:43 +00:00
arabianq bcb6f1f92a deploy: 7b87dc02dd 2026-07-26 17:58:41 +00:00
arabianq 69b1a5860b deploy: 785b835237 2026-07-26 17:45:04 +00:00
arabianq 929199b981 deploy: 785b835237 2026-07-26 17:39:17 +00:00
arabianq b781f03484 deploy: 1616d80ee9 2026-07-24 21:11:25 +00:00
arabianq d2e8de422a deploy: 1616d80ee9 2026-07-24 21:07:47 +00:00
arabianq 69e9a4b5b6 deploy: 1616d80ee9 2026-07-24 21:03:07 +00:00
arabianq d780985d15 deploy: 0c3d7cbd35 2026-07-24 20:58:33 +00:00
arabianq 992e5bf8d8 deploy: 0c3d7cbd35 2026-07-24 20:52:01 +00:00
arabianq 7c3cad6e6e deploy: 6d7abdbf53 2026-07-24 03:10:48 +00:00
arabianq 10fc6d84c9 deploy: 6d7abdbf53 2026-07-24 03:08:13 +00:00
arabianq 5d262ba412 deploy: 6d7abdbf53 2026-07-24 03:06:52 +00:00
arabianq 7ff3cd3a0e deploy: 6d7abdbf53 2026-07-24 03:01:29 +00:00
arabianq 6409e041ff deploy: 41bb035b2c 2026-07-24 03:00:13 +00:00
arabianq c3feb3fc06 deploy: 41bb035b2c 2026-07-24 02:56:41 +00:00
arabianq 8fa1d56fc4 deploy: 3873bf4270 2026-07-24 02:51:43 +00:00
arabianq 0611a22f83 deploy: 3873bf4270 2026-07-24 02:47:11 +00:00
arabianq b0640d7809 deploy: 2b60b47cce 2026-07-24 02:46:05 +00:00
arabianq 3d34ec6e98 deploy: 65ae8589db 2026-07-24 02:42:12 +00:00
arabianq 004ae0907d deploy: 65ae8589db 2026-07-24 02:36:17 +00:00
arabianq 7a19d79d08 deploy: a33d023950 2026-07-24 01:58:08 +00:00
arabianq a2aeab5a16 deploy: a33d023950 2026-07-24 01:52:04 +00:00
arabianq 5a87f06e16 deploy: 5c73bc1bea 2026-07-20 18:48:20 +00:00
arabianq b6d5cfcd0c deploy: 5c73bc1bea 2026-07-20 18:45:06 +00:00
arabianq 42e8723977 deploy: 5c73bc1bea 2026-07-20 18:34:07 +00:00
arabianq 26e5d8b02a deploy: 5c73bc1bea 2026-07-20 18:28:30 +00:00
arabianq af5a7851ed deploy: 42e305869a 2026-07-20 18:23:27 +00:00
arabianq 454ab9b3a6 deploy: 3a218283db 2026-07-20 18:07:57 +00:00
arabianq 4e92298873 deploy: 3a218283db 2026-07-20 18:04:54 +00:00
arabianq 437d7fdb4e deploy: 02fdfb6ca8 2026-07-20 16:43:14 +00:00
arabianq 39816a4dbe deploy: 02fdfb6ca8 2026-07-20 16:37:01 +00:00
arabianq 93f3460e2d deploy: a027838d0e 2026-07-20 16:33:24 +00:00
arabianq f1ac8b91d7 deploy: 1828d903a1 2026-07-20 16:30:49 +00:00
arabianq e1f12f5ce4 deploy: 83ca7a5e34 2026-07-20 16:27:02 +00:00
arabianq 6ca239ffc9 deploy: 1828d903a1 2026-07-20 16:24:35 +00:00
arabianq 0599e38625 deploy: 83ca7a5e34 2026-07-20 16:23:20 +00:00
arabianq ddaee8c1e9 deploy: f2aca5e34a 2026-07-20 16:22:07 +00:00
arabianq fcde9614e2 deploy: f2aca5e34a 2026-07-20 16:16:39 +00:00
arabianq b51f453ec3 deploy: 6130a99c4b 2026-07-20 16:12:28 +00:00
arabianq 758f685413 deploy: 6130a99c4b 2026-07-20 16:04:28 +00:00
arabianq 702acccb55 deploy: 322b93efa1 2026-07-19 14:32:27 +00:00
arabianq 9d4d5016fa deploy: 322b93efa1 2026-07-19 14:31:19 +00:00
arabianq 39b726f8c4 deploy: 683f4127a0 2026-07-15 13:30:06 +00:00
arabianq bb57bfb1a8 deploy: 683f4127a0 2026-07-15 13:24:13 +00:00
arabianq 183c961710 deploy: c873166e21 2026-07-14 13:53:40 +00:00
arabianq b985132ed7 deploy: c873166e21 2026-07-14 13:52:55 +00:00
arabianq f79614da75 deploy: ec4e873071 2026-07-07 18:35:37 +00:00
arabianq 12f986db1e deploy: ec4e873071 2026-07-07 18:31:45 +00:00
arabianq c826b7ae4d deploy: a91252d7fb 2026-07-07 17:45:16 +00:00
arabianq dc9fc64a16 deploy: a91252d7fb 2026-07-07 17:42:32 +00:00
arabianq c4776c43eb deploy: a91252d7fb 2026-07-07 16:37:31 +00:00
arabianq b091c65935 deploy: a91252d7fb 2026-07-07 16:35:19 +00:00
arabianq e08de17e64 deploy: 4f8f663f12 2026-07-07 16:34:40 +00:00
arabianq 868b6ce432 deploy: 4f8f663f12 2026-07-07 16:31:06 +00:00
arabianq 8b991d56a9 deploy: 6ccc55a1d0 2026-07-07 16:06:53 +00:00
arabianq e796a2248d deploy: d266a3f073 2026-07-07 16:04:53 +00:00
arabianq 406f9957f4 deploy: 6ccc55a1d0 2026-07-07 16:02:06 +00:00
arabianq 2d37280217 deploy: d266a3f073 2026-07-07 16:00:45 +00:00
arabianq 563aa1d90c deploy: d2993592be 2026-07-07 14:02:58 +00:00
arabianq 9a74eeb14b deploy: d2993592be 2026-07-07 13:58:23 +00:00
arabianq a672127081 deploy: 1a53ab62dc 2026-07-07 13:12:44 +00:00
arabianq 2b95b5040b deploy: 1a53ab62dc 2026-07-07 13:08:37 +00:00
arabianq 125dbd3f8f deploy: 51fcd94a61 2026-07-07 13:06:20 +00:00
arabianq dae190dd5f deploy: 51fcd94a61 2026-07-07 13:01:41 +00:00
arabianq 964205907a deploy: 7f6a122816 2026-07-07 12:57:44 +00:00
arabianq c1a7d050ab deploy: 7f6a122816 2026-07-07 12:51:58 +00:00
arabianq 8556b27f0d deploy: 7ca01ed8cb 2026-07-07 12:49:12 +00:00
arabianq 3c8722d1f6 deploy: 7ca01ed8cb 2026-07-07 12:43:21 +00:00
arabianq ebfb5d402c deploy: 07321afb60 2026-07-05 19:57:25 +00:00
arabianq 6d31f503b9 deploy: 07321afb60 2026-07-05 19:51:24 +00:00
arabianq bd0f1a941d deploy: 16ce233f79 2026-07-05 19:44:30 +00:00
arabianq 955a696cbc deploy: 16ce233f79 2026-07-05 19:38:16 +00:00
arabianq 1597cb67fd deploy: c2f4658871 2026-07-05 19:31:38 +00:00
arabianq 0cb31d6e89 deploy: c2f4658871 2026-07-05 19:24:48 +00:00
arabianq 8128036313 deploy: 701bdebc88 2026-07-05 18:57:09 +00:00
arabianq 0adf869d5c deploy: 701bdebc88 2026-07-05 18:53:41 +00:00
arabianq 1d1df22920 deploy: 701bdebc88 2026-07-05 18:25:59 +00:00
arabianq ed4bfa7d1b deploy: 701bdebc88 2026-07-05 18:20:44 +00:00
4405 changed files with 285 additions and 21908 deletions
-1
View File
@@ -1 +0,0 @@
custom: ['https://www.donationalerts.com/r/arabianq', 'https://boosty.to/arabian', 'https://sponsr.ru/notultranx/']
-6
View File
@@ -1,6 +0,0 @@
version: 2
updates:
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
-204
View File
@@ -1,204 +0,0 @@
name: Build
permissions:
contents: write
packages: write
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
workflow_dispatch:
jobs:
linux-build:
strategy:
matrix:
include:
- arch: x64
runner: ubuntu-latest
- arch: arm64
runner: ubuntu-24.04-arm
fail-fast: false
runs-on: ${{ matrix.runner }}
steps:
- name: Install apt deps (jq/zip + dev-libs)
run: |
sudo apt-get update
sudo apt-get install -y \
zip jq \
libpipewire-0.3-dev \
libclang-dev \
libasound2-dev \
libdbus-1-dev \
pkg-config
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: 1.96.0
- name: Rust Cache
uses: swatinem/rust-cache@v2
- name: Run tests
run: cargo test --locked
- name: Build all binaries (debug-speed compilation into target/release)
env:
CARGO_PROFILE_RELEASE_OPT_LEVEL: 0
CARGO_PROFILE_RELEASE_DEBUG: "true"
CARGO_PROFILE_RELEASE_STRIP: "false"
CARGO_PROFILE_RELEASE_LTO: "false"
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 256
run: cargo build --release --locked
- name: Extract all binary names
id: cargo-meta
run: |
set -euo pipefail
BIN_NAMES=$(cargo metadata --no-deps --format-version 1 \
| jq -r '.packages[].targets[] | select(.kind[] | contains("bin")) | .name')
echo "bin_names<<EOF" >> $GITHUB_OUTPUT
echo "$BIN_NAMES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Package all binaries into one archive
shell: bash
run: |
set -euo pipefail
COMMIT_SHA="${{ github.sha }}"
ARCHIVE_NAME="pwsp-${COMMIT_SHA}-linux-${{ matrix.arch }}.zip"
echo "Creating archive: $ARCHIVE_NAME"
FILES=()
while IFS= read -r BIN; do
[ -z "$BIN" ] && continue
FILES+=("target/release/$BIN")
done <<< "${{ steps.cargo-meta.outputs.bin_names }}"
if [ "${#FILES[@]}" -eq 0 ]; then
echo "Error: no binaries were discovered via cargo metadata." >&2
exit 1
fi
for f in "${FILES[@]}"; do
if [ ! -f "$f" ]; then
echo "Error: expected binary not found: $f" >&2
exit 1
fi
echo "Will add: $f"
done
zip -j "$ARCHIVE_NAME" "${FILES[@]}"
- name: Upload archive as artifact
uses: actions/upload-artifact@v4
with:
name: archive-${{ matrix.arch }}
path: pwsp-*.zip
retention-days: 7
deb-build:
strategy:
matrix:
include:
- arch: x64
runner: ubuntu-latest
- arch: arm64
runner: ubuntu-24.04-arm
fail-fast: false
runs-on: ${{ matrix.runner }}
steps:
- name: Install apt deps (dev-libs)
run: |
sudo apt-get update
sudo apt-get install -y \
libpipewire-0.3-dev \
libclang-dev \
libasound2-dev \
libdbus-1-dev \
pkg-config
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: 1.96.0
- name: Rust Cache
uses: swatinem/rust-cache@v2
- name: Build all binaries (debug-speed compilation into target/release)
env:
CARGO_PROFILE_RELEASE_OPT_LEVEL: 0
CARGO_PROFILE_RELEASE_DEBUG: "true"
CARGO_PROFILE_RELEASE_STRIP: "false"
CARGO_PROFILE_RELEASE_LTO: "false"
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 256
run: cargo build --release --locked
- name: Cache cargo-deb
id: cache-cargo-deb
uses: actions/cache@v4
with:
path: ~/.cargo/bin/cargo-deb
key: ${{ runner.os }}-${{ runner.arch }}-cargo-deb-v1
- name: Install cargo-deb
if: steps.cache-cargo-deb.outputs.cache-hit != 'true'
run: cargo install --locked cargo-deb
- name: Create .deb package (debug binaries from target/release)
shell: bash
run: |
set -euo pipefail
export PATH="$HOME/.cargo/bin:$PATH"
cargo-deb -p pwsp-gui --no-build --no-strip
- name: Upload .deb(s) as artifacts
uses: actions/upload-artifact@v4
with:
name: deb-packages-${{ matrix.arch }}
path: target/debian/*.deb
retention-days: 7
flatpak-build:
if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
strategy:
matrix:
include:
- arch: x86_64
runner: ubuntu-latest
- arch: aarch64
runner: ubuntu-24.04-arm
fail-fast: false
runs-on: ${{ matrix.runner }}
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:freedesktop-25.08
options: --privileged
steps:
- uses: actions/checkout@v4
- name: Build Flatpak
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: ru.arabianq.pwsp_${{ matrix.arch }}.flatpak
manifest-path: packages/flatpak/ru.arabianq.pwsp.yaml
cache: true
branch: master
build-bundle: true
arch: ${{ matrix.arch }}
-145
View File
@@ -1,145 +0,0 @@
name: Flatter
on:
push:
branches: [main, master]
release:
types: [published]
workflow_dispatch:
inputs:
tag_name:
description: "TAG (empty to build from current branch)"
required: false
type: string
build_branch:
description: "Flatpak branch to build (stable/nightly)"
required: true
type: choice
options:
- stable
- nightly
default: "stable"
jobs:
flatter-x64:
name: Flatter (x86_64)
runs-on: ubuntu-latest
permissions:
contents: read
container:
image: ghcr.io/andyholmes/flatter/freedesktop:25.08
options: --privileged
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ inputs.tag_name || github.ref }}
- name: Setup GPG
id: gpg
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
- name: Set Default Branch
id: set_branch
run: |
if [ "${{ github.event_name }}" == "release" ]; then
echo "branch=stable" >> $GITHUB_OUTPUT
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
echo "branch=${{ inputs.build_branch }}" >> $GITHUB_OUTPUT
else
echo "branch=nightly" >> $GITHUB_OUTPUT
fi
- name: Modify Manifest
run: |
echo "branch: ${{ steps.set_branch.outputs.branch }}" >> packages/flatpak/ru.arabianq.pwsp.yaml
echo "default-branch: ${{ steps.set_branch.outputs.branch }}" >> packages/flatpak/ru.arabianq.pwsp.yaml
- name: Install SDK Extensions
run: |
flatpak install -y flathub org.freedesktop.Sdk.Extension.rust-stable//25.08
flatpak install -y flathub org.freedesktop.Sdk.Extension.llvm20//25.08
- name: Build Flatpak
uses: andyholmes/flatter@main
with:
files: packages/flatpak/ru.arabianq.pwsp.yaml
gpg-sign: ${{ steps.gpg.outputs.fingerprint }}
upload-bundles: false
upload-pages-artifact: false
arch: x86_64
cache: true
flatter-arm64:
name: Flatter (aarch64)
needs: flatter-x64
runs-on: ubuntu-24.04-arm
permissions:
contents: read
container:
image: ghcr.io/andyholmes/flatter/freedesktop:25.08
options: --privileged
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ inputs.tag_name || github.ref }}
- name: Setup GPG
id: gpg
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
- name: Set Default Branch
id: set_branch
run: |
if [ "${{ github.event_name }}" == "release" ]; then
echo "branch=stable" >> $GITHUB_OUTPUT
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
echo "branch=${{ inputs.build_branch }}" >> $GITHUB_OUTPUT
else
echo "branch=nightly" >> $GITHUB_OUTPUT
fi
- name: Modify Manifest
run: |
echo "branch: ${{ steps.set_branch.outputs.branch }}" >> packages/flatpak/ru.arabianq.pwsp.yaml
echo "default-branch: ${{ steps.set_branch.outputs.branch }}" >> packages/flatpak/ru.arabianq.pwsp.yaml
- name: Install SDK Extensions
run: |
flatpak install -y flathub org.freedesktop.Sdk.Extension.rust-stable//25.08
flatpak install -y flathub org.freedesktop.Sdk.Extension.llvm20//25.08
- name: Build Flatpak
uses: andyholmes/flatter@main
with:
files: packages/flatpak/ru.arabianq.pwsp.yaml
gpg-sign: ${{ steps.gpg.outputs.fingerprint }}
upload-bundles: false
upload-pages-artifact: true
arch: aarch64
cache: true
deploy:
name: Deploy to GitHub Pages
runs-on: ubuntu-latest
needs: flatter-arm64
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
-267
View File
@@ -1,267 +0,0 @@
name: Release
permissions:
contents: write
packages: write
on:
release:
types: [created]
workflow_dispatch:
inputs:
tag:
description: "Tag to attach assets to (e.g. v1.0.0)"
required: false
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.tag.outputs.tag }}
steps:
- name: Determine tag to use
id: tag
run: |
set -euo pipefail
INPUT_TAG="${{ github.event.inputs.tag || '' }}"
if [ -n "$INPUT_TAG" ]; then
echo "Using input tag: $INPUT_TAG"
echo "tag=$INPUT_TAG" >> $GITHUB_OUTPUT
exit 0
fi
EVENT_TAG="${{ github.event.release.tag_name || '' }}"
if [ -n "$EVENT_TAG" ]; then
echo "Using event tag: $EVENT_TAG"
echo "tag=$EVENT_TAG" >> $GITHUB_OUTPUT
exit 0
fi
if [[ "${GITHUB_REF:-}" =~ ^refs/tags/(.+)$ ]]; then
echo "Using GITHUB_REF tag: ${BASH_REMATCH[1]}"
echo "tag=${BASH_REMATCH[1]}" >> $GITHUB_OUTPUT
exit 0
fi
echo "No tag in input/event/GITHUB_REF — querying latest release via API..."
LATEST_JSON=$(curl -sSf -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github+json" "https://api.github.com/repos/${{ github.repository }}/releases/latest" || true)
TAG_NAME=$(echo "$LATEST_JSON" | jq -r '.tag_name // empty')
if [ -n "$TAG_NAME" ]; then
echo "Found latest release tag: $TAG_NAME"
echo "tag=$TAG_NAME" >> $GITHUB_OUTPUT
exit 0
fi
echo "No tag found"
echo "tag=" >> $GITHUB_OUTPUT
- name: Fail if no tag determined
if: ${{ steps.tag.outputs.tag == '' }}
run: |
echo "ERROR: No tag determined. Provide a tag when running manually or ensure a release exists."
exit 1
linux-release:
needs: prepare
strategy:
matrix:
include:
- arch: x64
runner: ubuntu-latest
- arch: arm64
runner: ubuntu-24.04-arm
fail-fast: false
runs-on: ${{ matrix.runner }}
steps:
- name: Install apt deps (jq/zip + dev-libs)
run: |
sudo apt-get update
sudo apt-get install -y \
zip jq \
libpipewire-0.3-dev \
libclang-dev \
libasound2-dev \
libdbus-1-dev \
pkg-config
- name: Checkout code at tag
uses: actions/checkout@v4
with:
ref: ${{ needs.prepare.outputs.tag }}
fetch-depth: 0
- name: Setup Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: 1.96.0
- name: Rust Cache
uses: swatinem/rust-cache@v2
- name: Extract all binary names
id: cargo-meta
run: |
set -euo pipefail
BIN_NAMES=$(cargo metadata --no-deps --format-version 1 \
| jq -r '.packages[].targets[] | select(.kind[] | contains("bin")) | .name')
echo "bin_names<<EOF" >> $GITHUB_OUTPUT
echo "$BIN_NAMES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Build all release binaries
run: cargo build --release --locked
- name: Package all binaries into one archive
shell: bash
run: |
set -euo pipefail
TAG="${{ needs.prepare.outputs.tag }}"
ARCHIVE_NAME="pwsp-${TAG}-linux-${{ matrix.arch }}.zip"
echo "Creating archive: $ARCHIVE_NAME"
FILES=()
while IFS= read -r BIN; do
[ -z "$BIN" ] && continue
FILES+=("target/release/$BIN")
done <<< "${{ steps.cargo-meta.outputs.bin_names }}"
if [ "${#FILES[@]}" -eq 0 ]; then
echo "Error: no binaries were discovered via cargo metadata." >&2
exit 1
fi
for f in "${FILES[@]}"; do
if [ ! -f "$f" ]; then
echo "Error: expected binary not found: $f" >&2
exit 1
fi
echo "Will add: $f"
done
zip -j "$ARCHIVE_NAME" "${FILES[@]}"
- name: Upload zip archive
uses: actions/upload-artifact@v4
with:
name: zip-archive-${{ matrix.arch }}
path: pwsp-*.zip
retention-days: 1
deb-release:
needs: prepare
strategy:
matrix:
include:
- arch: x64
runner: ubuntu-latest
- arch: arm64
runner: ubuntu-24.04-arm
fail-fast: false
runs-on: ${{ matrix.runner }}
steps:
- name: Install apt deps (dev-libs)
run: |
sudo apt-get update
sudo apt-get install -y \
libpipewire-0.3-dev \
libclang-dev \
libasound2-dev \
libdbus-1-dev \
pkg-config
- name: Checkout code at tag
uses: actions/checkout@v4
with:
ref: ${{ needs.prepare.outputs.tag }}
fetch-depth: 0
- name: Setup Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: 1.96.0
- name: Rust Cache
uses: swatinem/rust-cache@v2
- name: Build all release binaries
run: cargo build --release --locked
- name: Cache cargo-deb
id: cache-cargo-deb
uses: actions/cache@v4
with:
path: ~/.cargo/bin/cargo-deb
key: ${{ runner.os }}-${{ runner.arch }}-cargo-deb-v1
- name: Install cargo-deb
if: steps.cache-cargo-deb.outputs.cache-hit != 'true'
run: cargo install --locked cargo-deb
- name: Create .deb package (release binaries)
shell: bash
run: |
set -euo pipefail
export PATH="$HOME/.cargo/bin:$PATH"
cargo-deb -p pwsp-gui --no-build
- name: Upload deb package
uses: actions/upload-artifact@v4
with:
name: deb-package-${{ matrix.arch }}
path: target/debian/*.deb
retention-days: 1
publish-release:
needs: [prepare, linux-release, deb-release]
runs-on: ubuntu-latest
steps:
- name: Download zip archive (x64)
uses: actions/download-artifact@v4
with:
name: zip-archive-x64
path: ./dist
- name: Download zip archive (arm64)
uses: actions/download-artifact@v4
with:
name: zip-archive-arm64
path: ./dist
- name: Download deb package (x64)
uses: actions/download-artifact@v4
with:
name: deb-package-x64
path: ./dist
- name: Download deb package (arm64)
uses: actions/download-artifact@v4
with:
name: deb-package-arm64
path: ./dist
- name: Upload artifacts to Release
uses: softprops/action-gh-release@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ needs.prepare.outputs.tag }}
files: |
./dist/pwsp-*.zip
./dist/*.deb
- name: Install copr-cli
run: pip install copr-cli
- name: Trigger Copr Build
env:
COPR_CONFIG: ${{ secrets.COPR_CONFIG }}
run: |
mkdir -p ~/.config
echo "$COPR_CONFIG" > ~/.config/copr
copr-cli buildscm --nowait \
--clone-url https://github.com/arabianq/pipewire-soundpad.git \
--commit ${{ needs.prepare.outputs.tag }} \
--spec packages/rpm/pwsp.spec \
arabianq/pwsp
-4
View File
@@ -1,4 +0,0 @@
/target
.idea
packages/aur/bin/.git
packages/aur/standart/.git
View File
View File
Generated
-6042
View File
File diff suppressed because it is too large Load Diff
-85
View File
@@ -1,85 +0,0 @@
[workspace]
members = [
"pwsp-lib",
"pwsp-daemon",
"pwsp-cli",
"pwsp-gui"
]
resolver = "2"
[workspace.package]
version = "1.12.1"
edition = "2024"
authors = ["arabian"]
homepage = "https://pwsp.arabianq.ru"
repository = "https://github.com/arabianq/pipewire-soundpad"
license = "MIT"
description = "PWSP lets you play audio files through your microphone. Has both CLI and GUI clients."
keywords = ["soundpad", "pipewire", "linux", "cli", "gui"]
[workspace.dependencies]
pwsp-lib = { path = "pwsp-lib" }
pwsp-daemon = { path = "pwsp-daemon" }
pwsp-cli = { path = "pwsp-cli" }
pwsp-gui = { path = "pwsp-gui" }
tokio = { version = "1.52.3", features = ["full"] }
async-trait = "0.1.89"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
clap = { version = "4.6.1", default-features = false, features = [
"std",
"suggestions",
"help",
"usage",
"error-context",
"derive",
] }
dirs = "6.0.0"
itertools = "0.15.0"
evdev = { version = "0.13.2", features = ["tokio"] }
rfd = { version = "0.17.2", default-features = false, features = [
"xdg-portal",
] }
opener = { version = "0.8.4", features = ["reveal"] }
system-fonts = "0.1.1"
anyhow = "1.0.102"
rustix = { version = "1.1.4", features = ["process"] }
rust-i18n = "4.0.0"
sys-locale = "0.3.2"
rodio = { git = "https://github.com/arabianq/rodio.git", rev = "4746803c2e5f67004264ac946708d47a9faf510c", default-features = false, features = [
"symphonia-all",
"symphonia-libopus",
"playback",
] }
pipewire = "0.10.0"
egui = { version = "0.34.2", default-features = false, features = [
"default_fonts",
"rayon",
] }
eframe = { version = "0.34.2", default-features = false, features = [
"default_fonts",
"glow",
"x11",
"wayland",
] }
egui_extras = "0.34.1"
egui_material_icons = "0.6.0"
egui_dnd = "0.15.0"
reqwest = "0.13.4"
percent-encoding = "2.3.2"
[profile.release]
strip = true
lto = true
codegen-units = 1
opt-level = "z"
panic = "abort"
-21
View File
@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2026 arabianq
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-118
View File
@@ -1,118 +0,0 @@
<div align="center">
<h1>🎵 PipeWire Soundpad (PWSP)</h1>
<p><b>A simple, modern, and powerful soundboard for Linux, written in Rust.</b></p>
<img src="pwsp-gui/assets/screenshot.png" alt="PWSP Screenshot" width="700"/>
</div>
## 🌟 Overview
**PipeWire Soundpad (PWSP)** is a graphical soundboard application that routes audio directly to your virtual microphone using **PipeWire**. It provides an intuitive interface for managing your audio collection, making it an ideal tool for gamers, streamers, and anyone looking to inject sound effects into voice chats on platforms like Discord, Zoom, or TeamSpeak.
## ✨ Key Features
* **🎙️ Virtual Microphone Output:** Seamlessly mixes your microphone input with sound effects by automatically managing PipeWire virtual devices.
* **🎵 Multi-Format Support:** Plays popular audio formats including `mp3`, `wav`, `ogg`, `flac`, `mp4`, and `aac`.
* **⚡ Global Hotkeys:** Trigger sounds instantly from anywhere, even when the app is running in the background.
* **📂 Smart Collection Management:** Drag-and-drop folders, quick search, and collapsible tracks to keep your library organized.
* **🎛️ Advanced Playback Controls:** Individual volume sliders, play/pause, position scrubbing, and concurrent multi-track playback.
* **🔌 Plug & Play:** Automatically detects when an input device is connected or disconnected and handles linking/unlinking on the fly.
* **🖥️ Modern GUI:** Clean, responsive, and lightweight interface powered by [egui](https://egui.rs/).
## ⚙️ Architecture
PWSP is built with a client-server model to ensure stability and separation of concerns:
* **`pwsp-daemon`**: The background engine. It runs silently, managing PipeWire virtual devices, audio routing, and playback.
* **`pwsp-gui`**: The graphical interface. Communicates with the daemon via a Unix socket to control playback and settings.
* **`pwsp-cli`**: The command-line tool. Perfect for scripting, hotkey binding, or quick terminal-based control.
---
## 🚀 Installation
### 📦 Flatpak (Recommended)
Install PWSP via Flatpak from our custom repository:
```bash
flatpak remote-add --user --if-not-exists pwsp-repo https://arabianq.github.io/pipewire-soundpad/index.flatpakrepo
# Install stable version
flatpak install --user arabianq-repo ru.arabianq.pwsp//stable
# Or install the nightly version (latest commit)
flatpak install --user arabianq-repo ru.arabianq.pwsp//nightly
```
### 🐧 Linux Packages
**Fedora (and derivatives):**
```bash
sudo dnf copr enable arabianq/pwsp
sudo dnf install pwsp
```
**Arch Linux (AUR):**
```bash
paru -S pwsp-bin # or 'pwsp' to build from source
```
**Debian / Ubuntu:**
Download pre-built `.deb` packages or standalone binaries from the [Releases page](https://github.com/arabianq/pipewire-soundpad/releases).
### 🦀 Cargo / Source Build
```bash
cargo install pwsp
# OR clone and build manually:
git clone https://github.com/arabianq/pipewire-soundpad.git
cd pipewire-soundpad
cargo build --release
```
*(Note: Requires Rust toolchain and PipeWire running on your system).*
---
## 🎮 Usage
### 1. Start the Daemon
Before using the GUI or CLI, the daemon must be running in the background.
```bash
# Recommended: Start and enable via systemd (starts on login)
systemctl --user enable --now pwsp-daemon
# Manual start (if not using systemd):
pwsp-daemon &
```
### 2. Using the GUI
1. **Add Sounds:** Click the **"+"** button to add a directory containing your audio files.
2. **Select Mic:** Choose your physical microphone from the dropdown. PWSP will instantly create a virtual microphone combining your voice and the soundboard.
3. **Play:** Click any sound to play it, adjust its volume, or assign a hotkey for quick access.
### 3. Using the CLI
Control the daemon directly from your terminal:
```bash
pwsp-cli action play /path/to/sound.mp3
pwsp-cli get volume
pwsp-cli set position 20
pwsp-cli --help # View all commands
```
---
## ⌨️ Shortcuts & Controls
| Action | Keyboard | Mouse |
| :----------------------------------- | :--------------------- | :------------------- |
| **Play Track** (Stops others) | | `Left Click` |
| **Add Track** (Plays simultaneously) | | `Ctrl + Left Click` |
| **Replace Last Track** | | `Shift + Left Click` |
| **Pause / Resume** | `Space` | |
| **Stop All Tracks** | `Backspace` | |
| **Open / Close Settings** | `I` | |
| **Search** | `/` | |
---
## 🤝 Contributing
Contributions, issues, and feature requests are welcome! Feel free to check out the [issues page](https://github.com/arabianq/pipewire-soundpad/issues).
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/arabianq/pipewire-soundpad)
## 📜 License
This project is licensed under the [MIT License](LICENSE).
+15
View File
@@ -0,0 +1,15 @@
Origin: arabianq
Label: PipeWire Soundpad
Codename: stable
Architectures: amd64 arm64
Components: main
Description: APT Repository for PWSP
SignWith: AAE3C56B1E2D3677108CF28083C9B0DB2C8F9D16
Origin: arabianq
Label: PipeWire Soundpad
Codename: nightly
Architectures: amd64 arm64
Components: main
Description: Nightly APT Repository for PWSP
SignWith: AAE3C56B1E2D3677108CF28083C9B0DB2C8F9D16
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
5.3.1
3.3.0
bdb5.3.28
bdb5.3.0
+38
View File
@@ -0,0 +1,38 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Origin: arabianq
Label: PipeWire Soundpad
Codename: nightly
Date: Thu, 17 Sep 2026 17:12:28 UTC
Architectures: amd64 arm64
Components: main
Description: Nightly APT Repository for PWSP
MD5Sum:
2573ea873a663134f83fc60619324be0 650 main/binary-amd64/Packages
fed300c0c68048da760d3ed25a03a57c 455 main/binary-amd64/Packages.gz
facbb80485897bc6e0d67e37e5dd38e8 123 main/binary-amd64/Release
458010e320c71cc84d829dfdd5dd7cd6 677 main/binary-arm64/Packages
a17b2f5f73d74e6e186866398cd6b057 461 main/binary-arm64/Packages.gz
7418f9ee7493009aeaa4417f5d11ee62 123 main/binary-arm64/Release
SHA1:
4e1b775b6e33b200bef819e7e0e1f83bae7553d6 650 main/binary-amd64/Packages
ea93723f99086e28d3cf1c8277248eae919e5143 455 main/binary-amd64/Packages.gz
66d8024fbaf66bb3aa03e04c8784ffc2d45d5e92 123 main/binary-amd64/Release
13e16c14fcf186a267eb21c6f3c461013ff204bc 677 main/binary-arm64/Packages
6f9121c99c9c9e8a36e1f034ff70f16d0f359298 461 main/binary-arm64/Packages.gz
f7984ac62248818b3d8a2c59250042d426414d8c 123 main/binary-arm64/Release
SHA256:
370dad8c4a5c8fc66dc59de3f4132ee32255b05bc3876a7a42beb6bdcef29efd 650 main/binary-amd64/Packages
bd049657c0c2c5d9b4ae697211cc1a8c4b1fae0129c478f20e5027a90eb28bb9 455 main/binary-amd64/Packages.gz
b5a22f248703739051a84b584c2b0ea20a9b69b28e823c5a8b0aca5f33f90bba 123 main/binary-amd64/Release
28c087c2c91236767bcf2627696e05c819ccd2c204c0fa701c3829db236ba880 677 main/binary-arm64/Packages
d1a0573b9684f9ce415944f8b79e27ce1c8d7bb79d61b8906a6616a278fc643b 461 main/binary-arm64/Packages.gz
a5e6d2298cf4bded7fd380a4bb06d97be39e9ea1a0b42acd5190a44aad619c92 123 main/binary-arm64/Release
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQSq48VrHi02dxCM8oCDybDbLI+dFgUCaqwffAAKCRCDybDbLI+d
FrUrAP4qI1Q4sqSxedRw1Cze6mfvO2K02mbAgO8si13d8duyiwEAht0FgL0sUmU5
HtmCCs++DIK4FOHnSO0Luo+S70BcVA0=
=5r1x
-----END PGP SIGNATURE-----
+28
View File
@@ -0,0 +1,28 @@
Origin: arabianq
Label: PipeWire Soundpad
Codename: nightly
Date: Thu, 17 Sep 2026 17:12:28 UTC
Architectures: amd64 arm64
Components: main
Description: Nightly APT Repository for PWSP
MD5Sum:
2573ea873a663134f83fc60619324be0 650 main/binary-amd64/Packages
fed300c0c68048da760d3ed25a03a57c 455 main/binary-amd64/Packages.gz
facbb80485897bc6e0d67e37e5dd38e8 123 main/binary-amd64/Release
458010e320c71cc84d829dfdd5dd7cd6 677 main/binary-arm64/Packages
a17b2f5f73d74e6e186866398cd6b057 461 main/binary-arm64/Packages.gz
7418f9ee7493009aeaa4417f5d11ee62 123 main/binary-arm64/Release
SHA1:
4e1b775b6e33b200bef819e7e0e1f83bae7553d6 650 main/binary-amd64/Packages
ea93723f99086e28d3cf1c8277248eae919e5143 455 main/binary-amd64/Packages.gz
66d8024fbaf66bb3aa03e04c8784ffc2d45d5e92 123 main/binary-amd64/Release
13e16c14fcf186a267eb21c6f3c461013ff204bc 677 main/binary-arm64/Packages
6f9121c99c9c9e8a36e1f034ff70f16d0f359298 461 main/binary-arm64/Packages.gz
f7984ac62248818b3d8a2c59250042d426414d8c 123 main/binary-arm64/Release
SHA256:
370dad8c4a5c8fc66dc59de3f4132ee32255b05bc3876a7a42beb6bdcef29efd 650 main/binary-amd64/Packages
bd049657c0c2c5d9b4ae697211cc1a8c4b1fae0129c478f20e5027a90eb28bb9 455 main/binary-amd64/Packages.gz
b5a22f248703739051a84b584c2b0ea20a9b69b28e823c5a8b0aca5f33f90bba 123 main/binary-amd64/Release
28c087c2c91236767bcf2627696e05c819ccd2c204c0fa701c3829db236ba880 677 main/binary-arm64/Packages
d1a0573b9684f9ce415944f8b79e27ce1c8d7bb79d61b8906a6616a278fc643b 461 main/binary-arm64/Packages.gz
a5e6d2298cf4bded7fd380a4bb06d97be39e9ea1a0b42acd5190a44aad619c92 123 main/binary-arm64/Release
+7
View File
@@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQSq48VrHi02dxCM8oCDybDbLI+dFgUCaqwffAAKCRCDybDbLI+d
Fvn8AQC3oe1shqFigNoQJVaIjz1FeM1sVj2jgu1VCZoPv8D5iQD/ZNfn2HmDlN7d
qPilIyk/3hnu60LsLNZWKdCeCNpX4QU=
=R3Qx
-----END PGP SIGNATURE-----
@@ -0,0 +1,17 @@
Package: pwsp
Version: 1.16.2+git20260917.4555a00
Architecture: amd64
Homepage: https://pwsp.arabianq.ru
Maintainer: arabian
Installed-Size: 40221
Depends: libasound2t64 (>= 1.1.0), libc6 (>= 2.34), libc6 (>= 2.39), libpipewire-0.3-0t64 (>= 0.3.1), libssl3t64 (>= 3.0.0)
Priority: optional
Section: sound
Filename: pool/main/p/pwsp/pwsp_1.16.2+git20260917.4555a00_amd64.deb
Size: 8894584
SHA256: d82469c29503d07cf12b3855e604fb90612a4c87bcd78f59a65fe3e166577b32
SHA1: 94abb72275ffbde5f194cbc6d3dd54e8cc06e4c1
MD5sum: 7b1dbd6a122a7fb0f90e1c17e11b4f46
Description: PWSP lets you play audio files through your microphone. Has both CLI and GUI
clients.
Binary file not shown.
@@ -0,0 +1,5 @@
Component: main
Origin: arabianq
Label: PipeWire Soundpad
Architecture: amd64
Description: Nightly APT Repository for PWSP
@@ -0,0 +1,17 @@
Package: pwsp
Version: 1.16.2+git20260917.4555a00
Architecture: arm64
Homepage: https://pwsp.arabianq.ru
Maintainer: arabian
Installed-Size: 37776
Depends: libasound2t64 (>= 1.0.16), libasound2t64 (>= 1.1.0), libc6 (>= 2.34), libc6 (>= 2.39), libpipewire-0.3-0t64 (>= 0.3.1), libssl3t64 (>= 3.0.0)
Priority: optional
Section: sound
Filename: pool/main/p/pwsp/pwsp_1.16.2+git20260917.4555a00_arm64.deb
Size: 7862964
SHA256: 4ed88cb5980e539ed6933395abbbcbd7229fef778752ab523b80437e5c562085
SHA1: a01b183eb4efcb6d909af35df42f45f95459cabe
MD5sum: 6fcf6d0455edfd0d97203656e5a40353
Description: PWSP lets you play audio files through your microphone. Has both CLI and GUI
clients.
Binary file not shown.
@@ -0,0 +1,5 @@
Component: main
Origin: arabianq
Label: PipeWire Soundpad
Architecture: arm64
Description: Nightly APT Repository for PWSP
+38
View File
@@ -0,0 +1,38 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Origin: arabianq
Label: PipeWire Soundpad
Codename: stable
Date: Wed, 09 Sep 2026 19:25:48 UTC
Architectures: amd64 arm64
Components: main
Description: APT Repository for PWSP
MD5Sum:
e79ec5acf5678eb2f658f67626b8ddb6 614 main/binary-amd64/Packages
4eaaa5452431abe5bdae6744ed00f2ba 440 main/binary-amd64/Packages.gz
f82d685802fbb32fec3c9ba8e11e55b9 115 main/binary-amd64/Release
f563a833397c3d4d278a4b08204e8db9 614 main/binary-arm64/Packages
b5d20fded73b9fb2596768d0884705c9 438 main/binary-arm64/Packages.gz
113dd4f621500874592b2a2f1eeb45ae 115 main/binary-arm64/Release
SHA1:
8db6fa456696d34f85101ff0b573c31d3b03da6a 614 main/binary-amd64/Packages
493c85716944ca8559542aa3faa6625d37a2664b 440 main/binary-amd64/Packages.gz
1ff55a261c49c41f38e6da56f1f5d7136d38b08f 115 main/binary-amd64/Release
02080e7eaecdf46b2b37a776a41418b7bc48b239 614 main/binary-arm64/Packages
90bdce0d525450e7809165d143810c600ae5d42f 438 main/binary-arm64/Packages.gz
be63fa980d70857efdc424c837cd54ab986a40cd 115 main/binary-arm64/Release
SHA256:
8d1d26b55a0c96e1500a9c6276e210f8950fdb99364bdd9f611777beed80355f 614 main/binary-amd64/Packages
45fc0d2d2b12ba5bc382df8b821fc38d8f3ebbc18f1ca8e8ebd7ad3bdd8e9d71 440 main/binary-amd64/Packages.gz
c670ad086ec5b85d17211cb15e8e4ac1fb49a6398d0c9672992c26a009229d8c 115 main/binary-amd64/Release
fd3a75e5351e602dbfc0ce79b1cdeb66346625fe62b11d973f2a5e114ee12d98 614 main/binary-arm64/Packages
d614049b3e0142cbb6878b0f89450e2350d5561fc19e934ad37990bc08008b17 438 main/binary-arm64/Packages.gz
4a90ce2395fbe57635b23de83540564c0917b2f419cd69ab2630fc1520bb5c11 115 main/binary-arm64/Release
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQSq48VrHi02dxCM8oCDybDbLI+dFgUCaqGyvAAKCRCDybDbLI+d
Fi7FAPwLaXSo37W6cUCUAjnxupr40qvRertMHPm+BoEcmzkiCQEA+mUMtxSS2Sgv
an7pc6858dazFBddO9XuktYE+QV+IwY=
=CRJo
-----END PGP SIGNATURE-----
+28
View File
@@ -0,0 +1,28 @@
Origin: arabianq
Label: PipeWire Soundpad
Codename: stable
Date: Wed, 09 Sep 2026 19:25:48 UTC
Architectures: amd64 arm64
Components: main
Description: APT Repository for PWSP
MD5Sum:
e79ec5acf5678eb2f658f67626b8ddb6 614 main/binary-amd64/Packages
4eaaa5452431abe5bdae6744ed00f2ba 440 main/binary-amd64/Packages.gz
f82d685802fbb32fec3c9ba8e11e55b9 115 main/binary-amd64/Release
f563a833397c3d4d278a4b08204e8db9 614 main/binary-arm64/Packages
b5d20fded73b9fb2596768d0884705c9 438 main/binary-arm64/Packages.gz
113dd4f621500874592b2a2f1eeb45ae 115 main/binary-arm64/Release
SHA1:
8db6fa456696d34f85101ff0b573c31d3b03da6a 614 main/binary-amd64/Packages
493c85716944ca8559542aa3faa6625d37a2664b 440 main/binary-amd64/Packages.gz
1ff55a261c49c41f38e6da56f1f5d7136d38b08f 115 main/binary-amd64/Release
02080e7eaecdf46b2b37a776a41418b7bc48b239 614 main/binary-arm64/Packages
90bdce0d525450e7809165d143810c600ae5d42f 438 main/binary-arm64/Packages.gz
be63fa980d70857efdc424c837cd54ab986a40cd 115 main/binary-arm64/Release
SHA256:
8d1d26b55a0c96e1500a9c6276e210f8950fdb99364bdd9f611777beed80355f 614 main/binary-amd64/Packages
45fc0d2d2b12ba5bc382df8b821fc38d8f3ebbc18f1ca8e8ebd7ad3bdd8e9d71 440 main/binary-amd64/Packages.gz
c670ad086ec5b85d17211cb15e8e4ac1fb49a6398d0c9672992c26a009229d8c 115 main/binary-amd64/Release
fd3a75e5351e602dbfc0ce79b1cdeb66346625fe62b11d973f2a5e114ee12d98 614 main/binary-arm64/Packages
d614049b3e0142cbb6878b0f89450e2350d5561fc19e934ad37990bc08008b17 438 main/binary-arm64/Packages.gz
4a90ce2395fbe57635b23de83540564c0917b2f419cd69ab2630fc1520bb5c11 115 main/binary-arm64/Release
+7
View File
@@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQSq48VrHi02dxCM8oCDybDbLI+dFgUCaqGyvAAKCRCDybDbLI+d
FvBpAQDPkQcCTHgvBtnRvP1TIv6ofOq3UAG0joDPBOUXPCDxsAEAo2nUt63XsNxF
d3H6UgcFl5w6IyQF0zzOo6/fovKZYAM=
=b6kV
-----END PGP SIGNATURE-----
@@ -0,0 +1,17 @@
Package: pwsp
Version: 1.16.2-1
Architecture: amd64
Homepage: https://pwsp.arabianq.ru
Maintainer: arabian
Installed-Size: 14326
Depends: libasound2t64 (>= 1.1.0), libc6 (>= 2.34), libc6 (>= 2.39), libpipewire-0.3-0t64 (>= 0.3.1), libssl3t64 (>= 3.0.0)
Priority: optional
Section: sound
Filename: pool/main/p/pwsp/pwsp_1.16.2-1_amd64.deb
Size: 4567768
SHA256: 0e585036cd3b0946fe8c1b07eb4cbe6a1fa76427f1d1abc7b5ca345b5c61ea5c
SHA1: 1e999b4c9f9ecd298faeb92cef9ad09faf5ae171
MD5sum: fc8c10736f323891236c31662811b578
Description: PWSP lets you play audio files through your microphone. Has both CLI and GUI
clients.
Binary file not shown.
@@ -0,0 +1,5 @@
Component: main
Origin: arabianq
Label: PipeWire Soundpad
Architecture: amd64
Description: APT Repository for PWSP
@@ -0,0 +1,17 @@
Package: pwsp
Version: 1.16.2-1
Architecture: arm64
Homepage: https://pwsp.arabianq.ru
Maintainer: arabian
Installed-Size: 11710
Depends: libasound2t64 (>= 1.1.0), libc6 (>= 2.34), libc6 (>= 2.39), libpipewire-0.3-0t64 (>= 0.3.1), libssl3t64 (>= 3.0.0)
Priority: optional
Section: sound
Filename: pool/main/p/pwsp/pwsp_1.16.2-1_arm64.deb
Size: 4042940
SHA256: fa26175c4ecfb7bd7a0b1e4419de7a0b3b265e06c73112754a0b601c3d8f6934
SHA1: 9388cbf33980562c6a09bd635f4be7f6dbf3d9e4
MD5sum: 22dfb74ba207d0d02877f19e7149c5f5
Description: PWSP lets you play audio files through your microphone. Has both CLI and GUI
clients.
Binary file not shown.
@@ -0,0 +1,5 @@
Component: main
Origin: arabianq
Label: PipeWire Soundpad
Architecture: arm64
Description: APT Repository for PWSP
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More