mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-07-27 14:14:13 +00:00
Compare commits
219
Commits
1d1df22920
..
v1.6.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7e66a9241b | ||
|
|
02ad7337a1 | ||
|
|
c08898e4f2 | ||
|
|
ed8b04caa9 | ||
|
|
58e5f039be | ||
|
|
eb89733715 | ||
|
|
476fd325ef | ||
|
|
da49c96e53 | ||
|
|
f0e05379f7 | ||
|
|
3d3523fd7a | ||
|
|
81da36f03c | ||
|
|
8bfa5daf78 | ||
|
|
b816d2aa88 | ||
|
|
23ae562849 | ||
|
|
e3bc1fd55f | ||
|
|
15964f205b | ||
|
|
6a0ac61033 | ||
|
|
4b802273f4 | ||
|
|
baae7a1ccf | ||
|
|
654694cecf | ||
|
|
04ecf66beb | ||
|
|
0fe94f9112 | ||
|
|
9fbe42c201 | ||
|
|
fac04c4533 | ||
|
|
f93852bf8e | ||
|
|
1bb0aa959a | ||
|
|
7a1723fbcb | ||
|
|
712a0968a7 | ||
|
|
e98e6bc2f3 | ||
|
|
5007b483aa | ||
|
|
b936b58e75 | ||
|
|
502ef2ed89 | ||
|
|
ce5910b9a6 | ||
|
|
b0c670235e | ||
|
|
f1d4ffd7fa | ||
|
|
6f35ab7b8b | ||
|
|
9a67f5479a | ||
|
|
b727eba988 | ||
|
|
330c3d79d4 | ||
|
|
dff20daace | ||
|
|
cdc44328a8 | ||
|
|
ac61a71dcb | ||
|
|
71c800c396 | ||
|
|
577a6d279b | ||
|
|
49e01f0318 | ||
|
|
5ea9b3b0ba | ||
|
|
ca85d4c369 | ||
|
|
4499b1d3aa | ||
|
|
d385e5356e | ||
|
|
b4a0dc6a83 | ||
|
|
2e570b3bb0 | ||
|
|
ee4554286e | ||
|
|
2c6f0d932e | ||
|
|
4e7606fdc6 | ||
|
|
03df631690 | ||
|
|
6df826f210 | ||
|
|
cdf306cfe9 | ||
|
|
74a436b171 | ||
|
|
2f33c48bcc | ||
|
|
1f48dad71c | ||
|
|
8066f6d96b | ||
|
|
5c3bc30a6e | ||
|
|
90ed05d88d | ||
|
|
f59050ef04 | ||
|
|
bae10edc99 | ||
|
|
cfa2681ba3 | ||
|
|
03e936ac34 | ||
|
|
f7f96abcbb | ||
|
|
4d54443593 | ||
|
|
5afe3dd45b | ||
|
|
bd75ac6190 | ||
|
|
3e6a8b6e79 | ||
|
|
c1c8deb1b3 | ||
|
|
dc61342af8 | ||
|
|
fded7f7b3f | ||
|
|
ec83680333 | ||
|
|
16e94e71d3 | ||
|
|
56040934e9 | ||
|
|
89975cb124 | ||
|
|
03e20ffa7e | ||
|
|
8f7ea09ef5 | ||
|
|
c639721f2a | ||
|
|
84512efda8 | ||
|
|
6cf4a9744d | ||
|
|
d9ced4e650 | ||
|
|
c1f3f34169 | ||
|
|
6c06da7b0d | ||
|
|
023caa4616 | ||
|
|
fc593f8a8e | ||
|
|
f281ad5a78 | ||
|
|
fe8fec4ea7 | ||
|
|
7583e72687 | ||
|
|
e4b4a3d198 | ||
|
|
a7af1caace | ||
|
|
c5086189d6 | ||
|
|
ac667f1273 | ||
|
|
fdb79e609f | ||
|
|
531a49dbdf | ||
|
|
2a13c25230 | ||
|
|
408f5317c4 | ||
|
|
3672d6f43e | ||
|
|
cc3bec0746 | ||
|
|
180a69bd40 | ||
|
|
6de51bc11c | ||
|
|
bc9f086245 | ||
|
|
f84cc03a6c | ||
|
|
96dda1d8a9 | ||
|
|
87b791ee3a | ||
|
|
ae5da6d9bd | ||
|
|
546b6fd13f | ||
|
|
e8d1947f18 | ||
|
|
9e55cb5f8b | ||
|
|
7f57175519 | ||
|
|
b21b32f746 | ||
|
|
3827d54ba8 | ||
|
|
9801b0cdf5 | ||
|
|
154f33b15b | ||
|
|
fa217c3b25 | ||
|
|
1fb8daf389 | ||
|
|
f2213d1def | ||
|
|
6997a6fa71 | ||
|
|
e1ae768f26 | ||
|
|
57c4461952 | ||
|
|
5c46ff4a1e | ||
|
|
9112102c16 | ||
|
|
9d1eb8bee9 | ||
|
|
39fe8a59c7 | ||
|
|
5870f7d440 | ||
|
|
4a060e4669 | ||
|
|
3981833a3b | ||
|
|
1ea84dbb28 | ||
|
|
195aa56ceb | ||
|
|
b205800a66 | ||
|
|
5e538db201 | ||
|
|
0bcd23195f | ||
|
|
ca0196f927 | ||
|
|
874c8063aa | ||
|
|
d877f79d5c | ||
|
|
3cfd2cb9bd | ||
|
|
bf1f8410c1 | ||
|
|
ad7c63617b | ||
|
|
00b25dde9d | ||
|
|
e3118a4b89 | ||
|
|
23f5ee0d22 | ||
|
|
5c4df232d5 | ||
|
|
7f0e6f7996 | ||
|
|
ab60e6b0ab | ||
|
|
3b3c5c32f9 | ||
|
|
74b76dd61d | ||
|
|
3b3db608e8 | ||
|
|
b1a24cb50e | ||
|
|
1855a8b72c | ||
|
|
42ab513ad9 | ||
|
|
ba04546b17 | ||
|
|
6feec98b4c | ||
|
|
43e1c60baa | ||
|
|
2f5fc04244 | ||
|
|
aa45a49c3a | ||
|
|
dd8ff8b1bf | ||
|
|
25667ce0f0 | ||
|
|
ccf48e6426 | ||
|
|
da79be0d22 | ||
|
|
01afb01198 | ||
|
|
37723ddc30 | ||
|
|
b672d9bd10 | ||
|
|
fa8a7b7590 | ||
|
|
d3c8706c33 | ||
|
|
071e805457 | ||
|
|
4f30f5047e | ||
|
|
e173a27c6e | ||
|
|
5891cc071e | ||
|
|
b02acb44fb | ||
|
|
c4a01a9f72 | ||
|
|
be5a619b89 | ||
|
|
00a3aa4ca4 | ||
|
|
dee908a347 | ||
|
|
4f8681a8c6 | ||
|
|
675f29f51f | ||
|
|
2efe16376c | ||
|
|
607e30da7c | ||
|
|
d6f96f3035 | ||
|
|
81cea863e4 | ||
|
|
ac721d0c4d | ||
|
|
06f12cd740 | ||
|
|
dda87f3222 | ||
|
|
8b1c4773c3 | ||
|
|
9b71c105fc | ||
|
|
82d603cbab | ||
|
|
e6d0e6e128 | ||
|
|
4c62d9f1e7 | ||
|
|
c40251b2a1 | ||
|
|
b7fa90d37e | ||
|
|
e3b787204d | ||
|
|
0a5d61b510 | ||
|
|
ef3cb0f48c | ||
|
|
19b5e52ba6 | ||
|
|
6b75654511 | ||
|
|
22c5ca6384 | ||
|
|
eacfaaf8f6 | ||
|
|
f3e574e8c9 | ||
|
|
cc02c6c3c0 | ||
|
|
7ec53f259e | ||
|
|
dddd4c5440 | ||
|
|
1a9836a7d9 | ||
|
|
26eec0c0ef | ||
|
|
3ba7a79010 | ||
|
|
6ab54d7ec9 | ||
|
|
af4f175e0c | ||
|
|
9907408541 | ||
|
|
b3e0d730da | ||
|
|
edfd2ba9b7 | ||
|
|
f2ce47cdcd | ||
|
|
6b10d365fc | ||
|
|
da756ccffe | ||
|
|
5e99870a71 | ||
|
|
ed5d6f63b1 | ||
|
|
89a58c27a0 | ||
|
|
529d73aa83 | ||
|
|
c98bc997c3 |
@@ -0,0 +1 @@
|
|||||||
|
custom: ['https://boosty.to/arabian']
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
name: Git archive
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main, master]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-upload:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Setup Rust toolchain
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
|
||||||
|
- name: Extract all binary names
|
||||||
|
id: cargo-meta
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
BIN_NAMES=$(cargo metadata --no-deps --format-version 1 \
|
||||||
|
| jq -r '.packages[0].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
|
||||||
|
COMMIT_SHA="${{ github.sha }}"
|
||||||
|
ARCHIVE_NAME="pwsp-${COMMIT_SHA}-linux-x64.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
|
||||||
|
path: pwsp-*.zip
|
||||||
|
retention-days: 7
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
name: Git deb
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main, master]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-upload:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Setup Rust toolchain
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
|
||||||
|
- name: Build all release binaries
|
||||||
|
run: cargo build --release --locked
|
||||||
|
|
||||||
|
- name: Install cargo-deb and create .deb
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
cargo install --locked cargo-deb
|
||||||
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
|
|
||||||
|
cargo-deb
|
||||||
|
|
||||||
|
- name: Upload .deb(s) as artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: deb-packages
|
||||||
|
path: target/debian/*.deb
|
||||||
|
retention-days: 7
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
name: Git Flatpak
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main, master]
|
||||||
|
pull_request:
|
||||||
|
branches: [main, master]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
flatpak-build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: bilelmoussaoui/flatpak-github-actions:freedesktop-24.08
|
||||||
|
options: --privileged
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Build Flatpak
|
||||||
|
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
||||||
|
with:
|
||||||
|
bundle: ru.arabianq.pwsp.flatpak
|
||||||
|
manifest-path: packages/flatpak/ru.arabianq.pwsp.yaml
|
||||||
|
cache: true
|
||||||
|
branch: master
|
||||||
|
build-bundle: true
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
name: Release archive
|
||||||
|
|
||||||
|
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:
|
||||||
|
build-and-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
- 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 $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
|
||||||
|
|
||||||
|
- name: Checkout code at tag
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ steps.tag.outputs.tag || github.ref }}
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Setup Rust toolchain
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
|
||||||
|
- name: Extract all binary names
|
||||||
|
id: cargo-meta
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
BIN_NAMES=$(cargo metadata --no-deps --format-version 1 \
|
||||||
|
| jq -r '.packages[0].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="${{ steps.tag.outputs.tag }}"
|
||||||
|
ARCHIVE_NAME="pwsp-${TAG}-linux-x64.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 release archive
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
tag_name: ${{ steps.tag.outputs.tag }}
|
||||||
|
files: |
|
||||||
|
pwsp-*.zip
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
name: Release deb
|
||||||
|
|
||||||
|
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:
|
||||||
|
build-and-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
- 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 $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
|
||||||
|
|
||||||
|
- name: Checkout code at tag
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ steps.tag.outputs.tag || github.ref }}
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Setup Rust toolchain
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
|
||||||
|
- name: Build all release binaries
|
||||||
|
run: cargo build --release --locked
|
||||||
|
|
||||||
|
- name: Install cargo-deb and create .deb
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
cargo install --locked cargo-deb
|
||||||
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
|
|
||||||
|
cargo-deb
|
||||||
|
|
||||||
|
- name: Upload .deb(s) to release
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
tag_name: ${{ steps.tag.outputs.tag }}
|
||||||
|
files: |
|
||||||
|
target/debian/*.deb
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
name: Release Flatpak
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [created]
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
tag:
|
||||||
|
description: "Tag to attach assets to (e.g. v1.0.0)"
|
||||||
|
required: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
flatpak-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: bilelmoussaoui/flatpak-github-actions:freedesktop-24.08
|
||||||
|
options: --privileged
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Determine tag to use
|
||||||
|
id: tag
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
INPUT_TAG="${{ github.event.inputs.tag || '' }}"
|
||||||
|
if [ -n "$INPUT_TAG" ]; then
|
||||||
|
echo "tag=$INPUT_TAG" >> $GITHUB_OUTPUT
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
EVENT_TAG="${{ github.event.release.tag_name || '' }}"
|
||||||
|
if [ -n "$EVENT_TAG" ]; then
|
||||||
|
echo "tag=$EVENT_TAG" >> $GITHUB_OUTPUT
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${GITHUB_REF:-}" =~ ^refs/tags/(.+)$ ]]; then
|
||||||
|
echo "tag=${BASH_REMATCH[1]}" >> $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."
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ steps.tag.outputs.tag }}
|
||||||
|
|
||||||
|
- name: Build Flatpak
|
||||||
|
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
||||||
|
with:
|
||||||
|
bundle: ru.arabianq.pwsp.flatpak
|
||||||
|
manifest-path: packages/flatpak/ru.arabianq.pwsp.yaml
|
||||||
|
cache: true
|
||||||
|
branch: master
|
||||||
|
build-bundle: true
|
||||||
|
|
||||||
|
- name: Upload Flatpak to release
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
tag_name: ${{ steps.tag.outputs.tag }}
|
||||||
|
files: ru.arabianq.pwsp.flatpak
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
/target
|
||||||
|
.idea
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[submodule "packages/aur"]
|
||||||
|
path = packages/aur
|
||||||
|
url = ssh://aur@aur.archlinux.org/pwsp.git
|
||||||
|
[submodule "packages/aur/standart"]
|
||||||
|
path = packages/aur/standart
|
||||||
|
url = ssh://aur@aur.archlinux.org/pwsp.git
|
||||||
|
[submodule "packages/aur/bin"]
|
||||||
|
path = packages/aur/bin
|
||||||
|
url = ssh://aur@aur.archlinux.org/pwsp-bin.git
|
||||||
Generated
+4831
File diff suppressed because it is too large
Load Diff
+106
@@ -0,0 +1,106 @@
|
|||||||
|
[package]
|
||||||
|
name = "pwsp"
|
||||||
|
version = "1.6.1"
|
||||||
|
edition = "2024"
|
||||||
|
authors = ["arabian"]
|
||||||
|
description = "PWSP lets you play audio files through your microphone. Has both CLI and GUI clients."
|
||||||
|
readme = "README.md"
|
||||||
|
homepage = "https://pwsp.arabianq.ru"
|
||||||
|
repository = "https://github.com/arabianq/pipewire-soundpad"
|
||||||
|
license = "MIT"
|
||||||
|
keywords = ["soundpad", "pipewire", "linux", "cli", "gui"]
|
||||||
|
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
tokio = { version = "1.49.0", features = ["full"] }
|
||||||
|
async-trait = "0.1.89"
|
||||||
|
|
||||||
|
serde = { version = "1.0.228", features = ["derive"] }
|
||||||
|
serde_json = "1.0.149"
|
||||||
|
|
||||||
|
clap = { version = "4.5.60", default-features = false, features = [
|
||||||
|
"std",
|
||||||
|
"suggestions",
|
||||||
|
"help",
|
||||||
|
"usage",
|
||||||
|
"error-context",
|
||||||
|
"derive",
|
||||||
|
] }
|
||||||
|
dirs = "6.0.0"
|
||||||
|
itertools = "0.14.0"
|
||||||
|
|
||||||
|
rodio = { version = "0.22.1", default-features = false, features = [
|
||||||
|
"symphonia-all",
|
||||||
|
"playback",
|
||||||
|
] }
|
||||||
|
pipewire = "0.9.2"
|
||||||
|
rfd = { version = "0.17.2", default-features = false, features = [
|
||||||
|
"xdg-portal",
|
||||||
|
] }
|
||||||
|
opener = { version = "0.8.4", features = ["reveal"] }
|
||||||
|
|
||||||
|
egui = { version = "0.33.3", default-features = false, features = [
|
||||||
|
"default_fonts",
|
||||||
|
"rayon",
|
||||||
|
] }
|
||||||
|
eframe = { version = "0.33.3", default-features = false, features = [
|
||||||
|
"default_fonts",
|
||||||
|
"glow",
|
||||||
|
"x11",
|
||||||
|
"wayland",
|
||||||
|
] }
|
||||||
|
egui_material_icons = "0.5.0"
|
||||||
|
egui_dnd = "0.14.0"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "pwsp-daemon"
|
||||||
|
path = "src/bin/daemon.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "pwsp-cli"
|
||||||
|
path = "src/bin/cli.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "pwsp-gui"
|
||||||
|
path = "src/main.rs"
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
strip = true
|
||||||
|
lto = true
|
||||||
|
codegen-units = 1
|
||||||
|
opt-level = "z"
|
||||||
|
panic = "abort"
|
||||||
|
|
||||||
|
[package.metadata.deb]
|
||||||
|
assets = [
|
||||||
|
[
|
||||||
|
"target/release/pwsp-daemon",
|
||||||
|
"usr/bin/",
|
||||||
|
"755",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"target/release/pwsp-cli",
|
||||||
|
"usr/bin/",
|
||||||
|
"755",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"target/release/pwsp-gui",
|
||||||
|
"usr/bin/",
|
||||||
|
"755",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"assets/pwsp-gui.desktop",
|
||||||
|
"usr/share/applications/pwsp.desktop",
|
||||||
|
"644",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"assets/icon.png",
|
||||||
|
"usr/share/icons/hicolor/256x256/apps/pwsp.png",
|
||||||
|
"644",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"assets/pwsp-daemon.service",
|
||||||
|
"usr/lib/systemd/user/pwsp-daemon.service",
|
||||||
|
"644",
|
||||||
|
],
|
||||||
|
]
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Tarasov Alexander
|
||||||
|
|
||||||
|
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.
|
||||||
@@ -0,0 +1,213 @@
|
|||||||
|
# **🎵 Pipewire Soundpad (PWSP)**
|
||||||
|
|
||||||
|
**PipeWire Soundpad (PWSP)** is a simple yet powerful **soundboard application** written in **Rust**. It provides a
|
||||||
|
user-friendly graphical interface for **managing and playing audio files, directing their output directly to the virtual
|
||||||
|
microphone.** This makes 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**
|
||||||
|
|
||||||
|
* **Multi-Format Support**: Play audio files in popular formats, including _**mp3**_, _**wav**_, _**ogg**_, _**flac**_,
|
||||||
|
_**mp4**_, and _**aac**_.
|
||||||
|
* **Virtual Microphone Output**: The application routes audio through a virtual device created by PipeWire, allowing
|
||||||
|
other users to hear the sounds as if you were speaking into your microphone.
|
||||||
|
* **Modern and Clean GUI**: The interface is built with the [egui](https://egui.rs) library, ensuring an intuitive and
|
||||||
|
responsive user experience.
|
||||||
|
* **Sound Collection Management**: Easily add and remove directories containing your audio files. The application scans
|
||||||
|
these folders and displays all supported files for quick access.
|
||||||
|
* **Quick Search**: Use the built-in search bar to instantly find any sound file within your library.
|
||||||
|
* **Detailed Playback Controls**:
|
||||||
|
* **Play/Pause button**.
|
||||||
|
* **Volume slider** for individual sound adjustment.
|
||||||
|
* **Position slider** to fast-forward or rewind the audio.
|
||||||
|
* **Persistent Configuration**: The list of added directories and your selected audio output device are saved
|
||||||
|
automatically, so you won't need to reconfigure them every time you launch the application.
|
||||||
|
* **Collapsible Audio Tracks**: You can collapse every audio track to save space.
|
||||||
|
* **Drag and Drop Directories**: Reorder your sound directories easily using drag and drop.
|
||||||
|
* **Automatic Device Detection**: PWSP automatically detects when an input device is connected or disconnected and handles linking/unlinking.
|
||||||
|
|
||||||
|
# **⚙️ How It Works**
|
||||||
|
|
||||||
|
PWSP is designed with a clear separation of concerns, operating through a client-server architecture. It consists of
|
||||||
|
three main components:
|
||||||
|
|
||||||
|
* **pwsp-daemon**: This is the core of the application. It runs silently in the background, managing all the
|
||||||
|
heavy-lifting tasks. The daemon is responsible for:
|
||||||
|
* Creating and managing virtual audio devices.
|
||||||
|
* Linking these devices within the PipeWire graph.
|
||||||
|
* Handling all audio playback.
|
||||||
|
* **pwsp-gui**: This is the graphical user interface. It acts as a client that communicates with pwsp-daemon via a
|
||||||
|
**UnixSocket**. This is how you interact with your sound collection, control playback, and configure settings.
|
||||||
|
* **pwsp-cli**: This is the command-line interface, also acting as a client. It provides a way to control the daemon
|
||||||
|
without a GUI, allowing for scripting or quick command-based actions.
|
||||||
|
|
||||||
|
# **🚀 Installation**
|
||||||
|
|
||||||
|
## **Pre-built Packages**
|
||||||
|
|
||||||
|
You can download pre-built binaries and .deb packages from
|
||||||
|
the [releases page](https://github.com/arabianq/pipewire-soundpad/releases).
|
||||||
|
|
||||||
|
## **Fedora Linux (and derivatives)**
|
||||||
|
|
||||||
|
If you're using Fedora, you can install PWSP from a dedicated repository using DNF.
|
||||||
|
|
||||||
|
Add the repository:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf copr enable arabianq/pwsp
|
||||||
|
```
|
||||||
|
|
||||||
|
Update cache:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf makecache
|
||||||
|
```
|
||||||
|
|
||||||
|
Install PWSP:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install pwsp
|
||||||
|
```
|
||||||
|
|
||||||
|
## **Arch Linux**
|
||||||
|
There is pwsp package in AUR.
|
||||||
|
You can install it using yay, paru or any other AUR helper.
|
||||||
|
```bash
|
||||||
|
paru pwsp-bin # or paru pwsp to build it locally
|
||||||
|
```
|
||||||
|
|
||||||
|
## **Installing using cargo**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo install pwsp
|
||||||
|
```
|
||||||
|
|
||||||
|
## **Building from source**
|
||||||
|
|
||||||
|
#### **Requirements**
|
||||||
|
|
||||||
|
* **Rust**: Install [Rust](https://www.rust-lang.org/tools/install) (using rustup is recommended).
|
||||||
|
* **PipeWire**: Ensure that [PipeWire](https://pipewire.org/) is installed and running on your system.
|
||||||
|
|
||||||
|
#### **Build Instructions**
|
||||||
|
|
||||||
|
Clone the repository:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/arabianq/pipewire-soundpad.git
|
||||||
|
cd pipewire-soundpad
|
||||||
|
```
|
||||||
|
|
||||||
|
Build the project:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo build --release
|
||||||
|
```
|
||||||
|
|
||||||
|
Now you have three binary files inside ./target/release/:
|
||||||
|
|
||||||
|
- **pwsp-gui**
|
||||||
|
- **pwsp-cli**
|
||||||
|
- **pwsp-daemon**
|
||||||
|
|
||||||
|
# **🎮 Usage**
|
||||||
|
|
||||||
|
Before using pwsp-gui or pwsp-cli, you **must** first run the pwsp-daemon in the background.
|
||||||
|
|
||||||
|
### **Running the Daemon**
|
||||||
|
|
||||||
|
You can start the daemon from the terminal or enable the systemd service for automatic startup.
|
||||||
|
|
||||||
|
* **Manual Start:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/path/to/your/pwsp-daemon &
|
||||||
|
```
|
||||||
|
|
||||||
|
* **Using systemd (recommended):**
|
||||||
|
If you installed PWSP using prebuilt packages, the systemd service is added automatically.
|
||||||
|
1. **Start the service:**
|
||||||
|
```bash
|
||||||
|
systemctl --user start pwsp-daemon
|
||||||
|
```
|
||||||
|
2. **Enable autostart (starts on login):**
|
||||||
|
```bash
|
||||||
|
systemctl --user enable --now pwsp-daemon
|
||||||
|
```
|
||||||
|
|
||||||
|
### **Using the GUI**
|
||||||
|
|
||||||
|
1. **Add Sounds**: Click the **"+"** button and select a folder containing your audio files. The application
|
||||||
|
will automatically list all supported files.
|
||||||
|
2. **Select Microphone**: In the main application window, select your microphone. PWSP will automatically
|
||||||
|
create a virtual microphone and feed it sound from two sources: **your microphone** and the **audio files**.
|
||||||
|
3. **Playback**: Click on a file in the list to load it, then use the **"Play"** and **"Pause"** buttons to control
|
||||||
|
playback. You can also play single file once using **"Play File"** button.
|
||||||
|
|
||||||
|
### **Using the CLI**
|
||||||
|
|
||||||
|
The pwsp-cli tool allows you to control the daemon from the command line.
|
||||||
|
|
||||||
|
* **General Help**: To see a list of all available commands, run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pwsp-cli --help
|
||||||
|
```
|
||||||
|
|
||||||
|
* **Example Commands**:
|
||||||
|
* **Play a file**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pwsp-cli action play <file_path>
|
||||||
|
```
|
||||||
|
|
||||||
|
* **Get the current volume**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pwsp-cli get volume
|
||||||
|
```
|
||||||
|
|
||||||
|
* **Set playback position to 20 seconds**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pwsp-cli set position 20
|
||||||
|
```
|
||||||
|
|
||||||
|
### **Hotkeys & Controls**
|
||||||
|
|
||||||
|
#### **Keyboard Shortcuts**
|
||||||
|
|
||||||
|
| Key | Action |
|
||||||
|
| :----------------------- | :--------------------------------------------------- |
|
||||||
|
| **Space** | Pause / Resume audio |
|
||||||
|
| **Backspace** | Stop all audio tracks |
|
||||||
|
| **Enter** | Play selected file (stops all other tracks) |
|
||||||
|
| **Ctrl + Enter** | Add selected file to playback (plays simultaneously) |
|
||||||
|
| **Shift + Enter** | Replace the last added track with the selected one |
|
||||||
|
| **I** | Open / Close settings |
|
||||||
|
| **/** | Focus search field |
|
||||||
|
| **Ctrl + ↑ / ↓** | Navigate through files |
|
||||||
|
| **Ctrl + Shift + ↑ / ↓** | Navigate through directories |
|
||||||
|
|
||||||
|
#### **Mouse Controls**
|
||||||
|
|
||||||
|
* **Left Click**: Play track (stops all other tracks).
|
||||||
|
* **Ctrl + Left Click**: Add track (plays simultaneously with current tracks).
|
||||||
|
* **Shift + Left Click**: Replace the last added track with the selected one.
|
||||||
|
|
||||||
|
# **🤝 Contributing**
|
||||||
|
|
||||||
|
Contributions are welcome\! If you have ideas for improvements or find a bug, feel free to create
|
||||||
|
an [issue](https://github.com/arabianq/pipewire-soundpad/issues) or submit
|
||||||
|
a [pull request](https://github.com/arabianq/pipewire-soundpad/pulls).
|
||||||
|
|
||||||
|
# **📜 License**
|
||||||
|
|
||||||
|
This project is licensed under
|
||||||
|
the [MIT License](https://github.com/arabianq/pipewire-soundpad/blob/main/LICENSE).
|
||||||
|
|
||||||
|
# **🤖 AI Wiki**
|
||||||
|
[](https://deepwiki.com/arabianq/pipewire-soundpad)
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
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.
@@ -1,4 +0,0 @@
|
|||||||
5.3.1
|
|
||||||
3.3.0
|
|
||||||
bdb5.3.28
|
|
||||||
bdb5.3.0
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNED MESSAGE-----
|
|
||||||
Hash: SHA512
|
|
||||||
|
|
||||||
Origin: arabianq
|
|
||||||
Label: PipeWire Soundpad
|
|
||||||
Codename: nightly
|
|
||||||
Date: Sun, 05 Jul 2026 18:20:43 UTC
|
|
||||||
Architectures: amd64 arm64
|
|
||||||
Components: main
|
|
||||||
Description: Nightly APT Repository for PWSP
|
|
||||||
MD5Sum:
|
|
||||||
841d44ebf4a7f0670dd17d0582068081 650 main/binary-amd64/Packages
|
|
||||||
f0a3b7e4900340920a4ba621e0b595d1 452 main/binary-amd64/Packages.gz
|
|
||||||
facbb80485897bc6e0d67e37e5dd38e8 123 main/binary-amd64/Release
|
|
||||||
8529d7914c036f4a05551bbf6c20dc91 677 main/binary-arm64/Packages
|
|
||||||
61405912ff96db862a5eb91a1029bcd8 461 main/binary-arm64/Packages.gz
|
|
||||||
7418f9ee7493009aeaa4417f5d11ee62 123 main/binary-arm64/Release
|
|
||||||
SHA1:
|
|
||||||
818fad4b1f960fa93ba70b0bd0d2d4572b8ba5ce 650 main/binary-amd64/Packages
|
|
||||||
0ca3c95eb91f035997e60f087e105f61dd280d3f 452 main/binary-amd64/Packages.gz
|
|
||||||
66d8024fbaf66bb3aa03e04c8784ffc2d45d5e92 123 main/binary-amd64/Release
|
|
||||||
be73de8ea87769324f54460e95b3345f3d783148 677 main/binary-arm64/Packages
|
|
||||||
7b01f30411f4405029e9336b9aec32cffb330048 461 main/binary-arm64/Packages.gz
|
|
||||||
f7984ac62248818b3d8a2c59250042d426414d8c 123 main/binary-arm64/Release
|
|
||||||
SHA256:
|
|
||||||
1bf8c72e44fd2b1e5a7529b1a2133a803af3bc2990957cae7bddffb6d0b33161 650 main/binary-amd64/Packages
|
|
||||||
bca0ce9e867b2b6969f8ae89776f8c70248400b3c2251cd7a334de3d12780aa3 452 main/binary-amd64/Packages.gz
|
|
||||||
b5a22f248703739051a84b584c2b0ea20a9b69b28e823c5a8b0aca5f33f90bba 123 main/binary-amd64/Release
|
|
||||||
fc417a81d9e859530cce94b340ccc222c340429de260ed04e20b23928e9ce32a 677 main/binary-arm64/Packages
|
|
||||||
11a8536d4a8682cbe8470c6c1a74034735134409ae9bba7cc47082bde5831599 461 main/binary-arm64/Packages.gz
|
|
||||||
a5e6d2298cf4bded7fd380a4bb06d97be39e9ea1a0b42acd5190a44aad619c92 123 main/binary-arm64/Release
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iHUEARYKAB0WIQSq48VrHi02dxCM8oCDybDbLI+dFgUCakqgewAKCRCDybDbLI+d
|
|
||||||
Fo6NAP4oRwr+7FpjQwauZOIfUWqU5Fi5NDOjdHsM72ac3qleGQD/bkXihMbTCoHz
|
|
||||||
i3AoxOyAcKmiLh2nz6gFwzQ1F6JbVQQ=
|
|
||||||
=qMVy
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
Origin: arabianq
|
|
||||||
Label: PipeWire Soundpad
|
|
||||||
Codename: nightly
|
|
||||||
Date: Sun, 05 Jul 2026 18:20:43 UTC
|
|
||||||
Architectures: amd64 arm64
|
|
||||||
Components: main
|
|
||||||
Description: Nightly APT Repository for PWSP
|
|
||||||
MD5Sum:
|
|
||||||
841d44ebf4a7f0670dd17d0582068081 650 main/binary-amd64/Packages
|
|
||||||
f0a3b7e4900340920a4ba621e0b595d1 452 main/binary-amd64/Packages.gz
|
|
||||||
facbb80485897bc6e0d67e37e5dd38e8 123 main/binary-amd64/Release
|
|
||||||
8529d7914c036f4a05551bbf6c20dc91 677 main/binary-arm64/Packages
|
|
||||||
61405912ff96db862a5eb91a1029bcd8 461 main/binary-arm64/Packages.gz
|
|
||||||
7418f9ee7493009aeaa4417f5d11ee62 123 main/binary-arm64/Release
|
|
||||||
SHA1:
|
|
||||||
818fad4b1f960fa93ba70b0bd0d2d4572b8ba5ce 650 main/binary-amd64/Packages
|
|
||||||
0ca3c95eb91f035997e60f087e105f61dd280d3f 452 main/binary-amd64/Packages.gz
|
|
||||||
66d8024fbaf66bb3aa03e04c8784ffc2d45d5e92 123 main/binary-amd64/Release
|
|
||||||
be73de8ea87769324f54460e95b3345f3d783148 677 main/binary-arm64/Packages
|
|
||||||
7b01f30411f4405029e9336b9aec32cffb330048 461 main/binary-arm64/Packages.gz
|
|
||||||
f7984ac62248818b3d8a2c59250042d426414d8c 123 main/binary-arm64/Release
|
|
||||||
SHA256:
|
|
||||||
1bf8c72e44fd2b1e5a7529b1a2133a803af3bc2990957cae7bddffb6d0b33161 650 main/binary-amd64/Packages
|
|
||||||
bca0ce9e867b2b6969f8ae89776f8c70248400b3c2251cd7a334de3d12780aa3 452 main/binary-amd64/Packages.gz
|
|
||||||
b5a22f248703739051a84b584c2b0ea20a9b69b28e823c5a8b0aca5f33f90bba 123 main/binary-amd64/Release
|
|
||||||
fc417a81d9e859530cce94b340ccc222c340429de260ed04e20b23928e9ce32a 677 main/binary-arm64/Packages
|
|
||||||
11a8536d4a8682cbe8470c6c1a74034735134409ae9bba7cc47082bde5831599 461 main/binary-arm64/Packages.gz
|
|
||||||
a5e6d2298cf4bded7fd380a4bb06d97be39e9ea1a0b42acd5190a44aad619c92 123 main/binary-arm64/Release
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iHUEABYKAB0WIQSq48VrHi02dxCM8oCDybDbLI+dFgUCakqgewAKCRCDybDbLI+d
|
|
||||||
Fn6/AQDmO8YSWd1oc6VT4ER4xqocFx2Zq4XUnrSXX6rnUIpIBwD/fT35YRK7oqlU
|
|
||||||
f4MMIfNf4rfIOUv4Pjw0Tykzcd5T8g0=
|
|
||||||
=4JbE
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Package: pwsp
|
|
||||||
Version: 1.12.3+git20260705.701bdeb
|
|
||||||
Architecture: amd64
|
|
||||||
Homepage: https://pwsp.arabianq.ru
|
|
||||||
Maintainer: arabian
|
|
||||||
Installed-Size: 37178
|
|
||||||
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.12.3+git20260705.701bdeb_amd64.deb
|
|
||||||
Size: 8787644
|
|
||||||
SHA256: 3b423379694de910b335fe11b33c365450ae316c65744959dfd8986e841f81e6
|
|
||||||
SHA1: 85795636ec89d8ee423326fe4481d4208bd166c3
|
|
||||||
MD5sum: 40998e17a9f19acbbd0dc2674eed0604
|
|
||||||
Description: PWSP lets you play audio files through your microphone. Has both CLI and GUI
|
|
||||||
clients.
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,5 +0,0 @@
|
|||||||
Component: main
|
|
||||||
Origin: arabianq
|
|
||||||
Label: PipeWire Soundpad
|
|
||||||
Architecture: amd64
|
|
||||||
Description: Nightly APT Repository for PWSP
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Package: pwsp
|
|
||||||
Version: 1.12.3+git20260705.701bdeb
|
|
||||||
Architecture: arm64
|
|
||||||
Homepage: https://pwsp.arabianq.ru
|
|
||||||
Maintainer: arabian
|
|
||||||
Installed-Size: 35078
|
|
||||||
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.12.3+git20260705.701bdeb_arm64.deb
|
|
||||||
Size: 7870840
|
|
||||||
SHA256: 97ec3935ca1d746aceddabcef9b798879dcf1e8e579c6bf52183a9b4c996f87d
|
|
||||||
SHA1: fba17e2d2ccc60354d6c10f69cc8be5c76915a0b
|
|
||||||
MD5sum: 5f95310b0cafd0b7bf0e7e8026b9b914
|
|
||||||
Description: PWSP lets you play audio files through your microphone. Has both CLI and GUI
|
|
||||||
clients.
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,5 +0,0 @@
|
|||||||
Component: main
|
|
||||||
Origin: arabianq
|
|
||||||
Label: PipeWire Soundpad
|
|
||||||
Architecture: arm64
|
|
||||||
Description: Nightly APT Repository for PWSP
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,13 +0,0 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
mDMEaezCthYJKwYBBAHaRw8BAQdAyDiO0akghMksZ6O02KlelezoaePzXhH8yNWS
|
|
||||||
eAWTuRi0DGEudGV2Z0B5YS5ydYiZBBMWCgBBFiEEquPFax4tNncQjPKAg8mw2yyP
|
|
||||||
nRYFAmnswrYCGwMFCQWjmoAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ
|
|
||||||
g8mw2yyPnRbXawEAo0EPrAfePpIVj+CIph+Muj1ZU9Ui5+CD32J9XtSJYRcBANTz
|
|
||||||
txOH1oG5n3eFZ/HCnU4Z+yiqEhGI2b//fC8jxx0HuDgEaezCthIKKwYBBAGXVQEF
|
|
||||||
AQEHQEt/m+vl2KMpu+TZWaLDa6jnR3ctu3xbYpjfqDtOl+YnAwEIB4h4BBgWCgAg
|
|
||||||
FiEEquPFax4tNncQjPKAg8mw2yyPnRYFAmnswrYCGwwACgkQg8mw2yyPnRbEHAD+
|
|
||||||
PiMF1s5ZYNlfp3RcOTasrasWDjmCXvFYbeM3vWCAO94BAIlfzEZKodeZ4jfTuf+u
|
|
||||||
QoXpv5yiGFpf7xFOxcvXE38B
|
|
||||||
=F4OX
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Pipewire Soundpad Daemon
|
||||||
|
After=pipewire.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/pwsp-daemon
|
||||||
|
Restart=no
|
||||||
|
RuntimeDirectory=pwsp
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=PWSP (Soundpad)
|
||||||
|
Comment=Let's you play audio files through you microphone
|
||||||
|
Exec=pwsp-gui %u
|
||||||
|
Icon=pwsp
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=Audio
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 84 KiB |
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.
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.
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.
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.
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.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user