mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-09-21 14:27:51 +00:00
Compare commits
378
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e67f174a59 | ||
|
|
6545431ac2 | ||
|
|
026ef97a72 | ||
|
|
9f833cc30b | ||
|
|
410a2c7959 | ||
|
|
c173e602ad | ||
|
|
3576c634fd | ||
|
|
5747f39ace | ||
|
|
c501033834 | ||
|
|
c0a27e0c3b | ||
|
|
3c2882ef1f | ||
|
|
36aed3f55d | ||
|
|
c48a425bb0 | ||
|
|
9a5436cd35 | ||
|
|
2ce243e896 | ||
|
|
57fb3fd7a3 | ||
|
|
82b02bf520 | ||
|
|
3d4dbbe866 | ||
|
|
70bd3a889a | ||
|
|
a7b5bdd2a9 | ||
|
|
99fef4a167 | ||
|
|
ae08f7ddc3 | ||
|
|
0060d0bdee | ||
|
|
f91a49cb70 | ||
|
|
8d513ff65b | ||
|
|
226dfd91ff | ||
|
|
344ea60fa5 | ||
|
|
8411cb3528 | ||
|
|
ad8f22a359 | ||
|
|
4ec49d822b | ||
|
|
ec2fa2a478 | ||
|
|
e91465365d | ||
|
|
0476329798 | ||
|
|
6c59137639 | ||
|
|
3693a678ea | ||
|
|
5511d23c3e | ||
|
|
818cd8b50d | ||
|
|
6f7d631e28 | ||
|
|
18904052c7 | ||
|
|
6841d8d1c3 | ||
|
|
105be87222 | ||
|
|
0f8abbc443 | ||
|
|
54011e7ff1 | ||
|
|
dac9d53cef | ||
|
|
9da3799cd3 | ||
|
|
d66369884c | ||
|
|
5e47e7d6fb | ||
|
|
695c83c9e6 | ||
|
|
798a6d1887 | ||
|
|
bb18175a30 | ||
|
|
6ef3f8d76e | ||
|
|
bec77f59bd | ||
|
|
dad1a62798 | ||
|
|
84a4a01282 | ||
|
|
88995f6fd1 | ||
|
|
660ece9866 | ||
|
|
f2dcf2e0fe | ||
|
|
fe655be59a | ||
|
|
78960cdc10 | ||
|
|
0439cf815e | ||
|
|
5ae82ef28c | ||
|
|
5f69345d45 | ||
|
|
930857312d | ||
|
|
e884993dba | ||
|
|
05dd4319cc | ||
|
|
e320c85a6f | ||
|
|
f02bbc1e1c | ||
|
|
02f1116076 | ||
|
|
8155cceac8 | ||
|
|
d974a93c04 | ||
|
|
c6d9f2d6e7 | ||
|
|
dc1ecc81ea | ||
|
|
9b70bcd69d | ||
|
|
a07025b1f6 | ||
|
|
c1d145fbc8 | ||
|
|
3d4b59761b | ||
|
|
ca9b5dd517 | ||
|
|
6863c9a6f8 | ||
|
|
958a3efde5 | ||
|
|
30e75e924c | ||
|
|
2b4b7ea730 | ||
|
|
dafe67f35f | ||
|
|
8fa22ca5b0 | ||
|
|
d72eaabf54 | ||
|
|
377b218592 | ||
|
|
911417af40 | ||
|
|
573958c05b | ||
|
|
0bb7ef3f33 | ||
|
|
10f07cd895 | ||
|
|
b2f2894aa1 | ||
|
|
e6c8d720d5 | ||
|
|
a6d93ff528 | ||
|
|
bcf791d84c | ||
|
|
e4b0b10393 | ||
|
|
11de96db58 | ||
|
|
7396c0aef8 | ||
|
|
fc2cd5e2da | ||
|
|
1a37729cf1 | ||
|
|
86b38a250e | ||
|
|
54fa278cea | ||
|
|
db040aa820 | ||
|
|
04449e7525 | ||
|
|
9f50809a99 | ||
|
|
7dda4bc2b1 | ||
|
|
1569955e12 | ||
|
|
9adc6cfbda | ||
|
|
76b1d4f345 | ||
|
|
10f9937dc3 | ||
|
|
498c09eb50 | ||
|
|
78e0a133b6 | ||
|
|
7f8b7194b6 | ||
|
|
302f153b91 | ||
|
|
f87dcb1564 | ||
|
|
d4d16f6ce7 | ||
|
|
949307fcf8 | ||
|
|
2a8fcca06b | ||
|
|
5c4b8f4b45 | ||
|
|
70c7e3789b | ||
|
|
5367a3daae | ||
|
|
42c0170044 | ||
|
|
cb56cb3a04 | ||
|
|
5a2418325d | ||
|
|
a948ea2dcd | ||
|
|
a156df346b | ||
|
|
7a13ae55a6 | ||
|
|
b2b83f5c32 | ||
|
|
f01a0e656c | ||
|
|
6114b9a7f8 | ||
|
|
b8baeb6226 | ||
|
|
02306b5893 | ||
|
|
3add499bd7 | ||
|
|
3c2e943e18 | ||
|
|
261f83efd4 | ||
|
|
c6577cd5e0 | ||
|
|
95761f6a5a | ||
|
|
d6effc972e | ||
|
|
498d0d25af | ||
|
|
c99d0749e3 | ||
|
|
151f43f1ab | ||
|
|
077518019f | ||
|
|
968eba80e6 | ||
|
|
aa77a8d212 | ||
|
|
4b50645c93 | ||
|
|
39648f7781 | ||
|
|
c649ef5410 | ||
|
|
0dfd841e6d | ||
|
|
89ce111542 | ||
|
|
80a8b1a45f | ||
|
|
f5c7d9bb2c | ||
|
|
bcd39eb6a2 | ||
|
|
47a7674c14 | ||
|
|
d33ee0c69e | ||
|
|
624310eae5 | ||
|
|
92a576de37 | ||
|
|
ce948ce678 | ||
|
|
e72fc519a0 | ||
|
|
8126efe8d9 | ||
|
|
a7dd0b97d1 | ||
|
|
5f9aad7fa2 | ||
|
|
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,6 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "cargo"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
@@ -0,0 +1,198 @@
|
|||||||
|
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: 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: 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 }}
|
||||||
@@ -0,0 +1,143 @@
|
|||||||
|
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
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
@@ -0,0 +1,262 @@
|
|||||||
|
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: 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: 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 --clone-url https://github.com/arabianq/pipewire-soundpad.git \
|
||||||
|
--commit ${{ needs.prepare.outputs.tag }} \
|
||||||
|
--spec packages/rpm/pwsp.spec \
|
||||||
|
--name pwsp \
|
||||||
|
arabianq/pipewire-soundpad
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
/target
|
||||||
|
.idea
|
||||||
|
packages/aur/bin/.git
|
||||||
|
packages/aur/standart/.git
|
||||||
Generated
+6220
File diff suppressed because it is too large
Load Diff
+85
@@ -0,0 +1,85 @@
|
|||||||
|
[workspace]
|
||||||
|
members = [
|
||||||
|
"pwsp-lib",
|
||||||
|
"pwsp-daemon",
|
||||||
|
"pwsp-cli",
|
||||||
|
"pwsp-gui"
|
||||||
|
]
|
||||||
|
resolver = "2"
|
||||||
|
|
||||||
|
[workspace.package]
|
||||||
|
version = "1.12.0"
|
||||||
|
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.14.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 = "c6a81b5a46e00a6a682c0c431dff62e86f57d819", 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"
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
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.
|
||||||
@@ -0,0 +1,118 @@
|
|||||||
|
<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).
|
||||||
|
|
||||||
|
[](https://deepwiki.com/arabianq/pipewire-soundpad)
|
||||||
|
|
||||||
|
## 📜 License
|
||||||
|
This project is licensed under the [MIT License](LICENSE).
|
||||||
@@ -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: Mon, 20 Jul 2026 18:23:18 UTC
|
|
||||||
Architectures: amd64 arm64
|
|
||||||
Components: main
|
|
||||||
Description: Nightly APT Repository for PWSP
|
|
||||||
MD5Sum:
|
|
||||||
47c6bbccfe0c256aa46776b5f73ffc11 650 main/binary-amd64/Packages
|
|
||||||
2f681f56a634aa0ebf52b8775b942b3d 451 main/binary-amd64/Packages.gz
|
|
||||||
facbb80485897bc6e0d67e37e5dd38e8 123 main/binary-amd64/Release
|
|
||||||
e18b45381b1a7cd841862d334a314786 677 main/binary-arm64/Packages
|
|
||||||
b5df4388f20e04881b93ffadd8b15e72 460 main/binary-arm64/Packages.gz
|
|
||||||
7418f9ee7493009aeaa4417f5d11ee62 123 main/binary-arm64/Release
|
|
||||||
SHA1:
|
|
||||||
16b171c187d4bd79714ce3d4676986c4ea9ff99c 650 main/binary-amd64/Packages
|
|
||||||
714ce5712ccd15e5ef3eff38820455ddf0ae157d 451 main/binary-amd64/Packages.gz
|
|
||||||
66d8024fbaf66bb3aa03e04c8784ffc2d45d5e92 123 main/binary-amd64/Release
|
|
||||||
6691a01218100436c927c661aefde4a609f408c4 677 main/binary-arm64/Packages
|
|
||||||
65f72442c939d550005038b1de27f503234c49bd 460 main/binary-arm64/Packages.gz
|
|
||||||
f7984ac62248818b3d8a2c59250042d426414d8c 123 main/binary-arm64/Release
|
|
||||||
SHA256:
|
|
||||||
061782a475b34e44e268dbadfbe0d07c1b65d00ffbe90510e20ce59f4d99f6ce 650 main/binary-amd64/Packages
|
|
||||||
1c2ac4b75ce65cc7c1ccbd1fb3f13046fb5b4e9676da0eb9e49bbd76da542bf3 451 main/binary-amd64/Packages.gz
|
|
||||||
b5a22f248703739051a84b584c2b0ea20a9b69b28e823c5a8b0aca5f33f90bba 123 main/binary-amd64/Release
|
|
||||||
5ab21e34170e9833c77d9743822613eec4a3a3d04d1e55c1638e6caf5300d37f 677 main/binary-arm64/Packages
|
|
||||||
0fb037fbe0997a3d0000d04f13aaff3867137d91eefaed166c2269e9f5e05aaf 460 main/binary-arm64/Packages.gz
|
|
||||||
a5e6d2298cf4bded7fd380a4bb06d97be39e9ea1a0b42acd5190a44aad619c92 123 main/binary-arm64/Release
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iHUEARYKAB0WIQSq48VrHi02dxCM8oCDybDbLI+dFgUCal5nlwAKCRCDybDbLI+d
|
|
||||||
FofzAPwNFphDyOtMnyFZIdKvVI4FQX1bN9xdVcJDqUaXEtCi6QD+JTn+IBpZgDY/
|
|
||||||
3CXAx/tKnVOCcGBqmO2TlVAMn+IalgU=
|
|
||||||
=Qgtn
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
Origin: arabianq
|
|
||||||
Label: PipeWire Soundpad
|
|
||||||
Codename: nightly
|
|
||||||
Date: Mon, 20 Jul 2026 18:23:18 UTC
|
|
||||||
Architectures: amd64 arm64
|
|
||||||
Components: main
|
|
||||||
Description: Nightly APT Repository for PWSP
|
|
||||||
MD5Sum:
|
|
||||||
47c6bbccfe0c256aa46776b5f73ffc11 650 main/binary-amd64/Packages
|
|
||||||
2f681f56a634aa0ebf52b8775b942b3d 451 main/binary-amd64/Packages.gz
|
|
||||||
facbb80485897bc6e0d67e37e5dd38e8 123 main/binary-amd64/Release
|
|
||||||
e18b45381b1a7cd841862d334a314786 677 main/binary-arm64/Packages
|
|
||||||
b5df4388f20e04881b93ffadd8b15e72 460 main/binary-arm64/Packages.gz
|
|
||||||
7418f9ee7493009aeaa4417f5d11ee62 123 main/binary-arm64/Release
|
|
||||||
SHA1:
|
|
||||||
16b171c187d4bd79714ce3d4676986c4ea9ff99c 650 main/binary-amd64/Packages
|
|
||||||
714ce5712ccd15e5ef3eff38820455ddf0ae157d 451 main/binary-amd64/Packages.gz
|
|
||||||
66d8024fbaf66bb3aa03e04c8784ffc2d45d5e92 123 main/binary-amd64/Release
|
|
||||||
6691a01218100436c927c661aefde4a609f408c4 677 main/binary-arm64/Packages
|
|
||||||
65f72442c939d550005038b1de27f503234c49bd 460 main/binary-arm64/Packages.gz
|
|
||||||
f7984ac62248818b3d8a2c59250042d426414d8c 123 main/binary-arm64/Release
|
|
||||||
SHA256:
|
|
||||||
061782a475b34e44e268dbadfbe0d07c1b65d00ffbe90510e20ce59f4d99f6ce 650 main/binary-amd64/Packages
|
|
||||||
1c2ac4b75ce65cc7c1ccbd1fb3f13046fb5b4e9676da0eb9e49bbd76da542bf3 451 main/binary-amd64/Packages.gz
|
|
||||||
b5a22f248703739051a84b584c2b0ea20a9b69b28e823c5a8b0aca5f33f90bba 123 main/binary-amd64/Release
|
|
||||||
5ab21e34170e9833c77d9743822613eec4a3a3d04d1e55c1638e6caf5300d37f 677 main/binary-arm64/Packages
|
|
||||||
0fb037fbe0997a3d0000d04f13aaff3867137d91eefaed166c2269e9f5e05aaf 460 main/binary-arm64/Packages.gz
|
|
||||||
a5e6d2298cf4bded7fd380a4bb06d97be39e9ea1a0b42acd5190a44aad619c92 123 main/binary-arm64/Release
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iHUEABYKAB0WIQSq48VrHi02dxCM8oCDybDbLI+dFgUCal5nlgAKCRCDybDbLI+d
|
|
||||||
FjQZAQDtt7vv9PFWjyta0qTy0BoP+o0TvFGvJEtxy/bN2NjmwgEAvN76B+MY28I0
|
|
||||||
acNkul/G9a1hhn6vfmsHDX/IvEc0rgc=
|
|
||||||
=2rvU
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Package: pwsp
|
|
||||||
Version: 1.12.5+git20260720.42e3058
|
|
||||||
Architecture: amd64
|
|
||||||
Homepage: https://pwsp.arabianq.ru
|
|
||||||
Maintainer: arabian
|
|
||||||
Installed-Size: 39571
|
|
||||||
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.5+git20260720.42e3058_amd64.deb
|
|
||||||
Size: 8671104
|
|
||||||
SHA256: 8d1bcec10f2645299a7dece8345ef36b0f5521dda19781bde5016a28ab405af8
|
|
||||||
SHA1: 999d47e7def761f54c2cc52121cf542203973536
|
|
||||||
MD5sum: d1961b0a4fbab11a07207b5a0740b64e
|
|
||||||
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.5+git20260720.42e3058
|
|
||||||
Architecture: arm64
|
|
||||||
Homepage: https://pwsp.arabianq.ru
|
|
||||||
Maintainer: arabian
|
|
||||||
Installed-Size: 37270
|
|
||||||
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.5+git20260720.42e3058_arm64.deb
|
|
||||||
Size: 7706208
|
|
||||||
SHA256: df88f4c9a2d7b50fa263adde4835a8c0e6fabd28dd27b0e8bb7978c41c974b87
|
|
||||||
SHA1: 813a0a1b38910faf4d04bb9a6d419041823edda1
|
|
||||||
MD5sum: ba6bc2753389cc935dfbe0eeb103347e
|
|
||||||
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
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNED MESSAGE-----
|
|
||||||
Hash: SHA512
|
|
||||||
|
|
||||||
Origin: arabianq
|
|
||||||
Label: PipeWire Soundpad
|
|
||||||
Codename: stable
|
|
||||||
Date: Mon, 20 Jul 2026 18:44:52 UTC
|
|
||||||
Architectures: amd64 arm64
|
|
||||||
Components: main
|
|
||||||
Description: APT Repository for PWSP
|
|
||||||
MD5Sum:
|
|
||||||
eacd7563641b7b6f7bb846ee95e5e608 614 main/binary-amd64/Packages
|
|
||||||
5902112d5f3ab6454ef7b4fd9187b85b 440 main/binary-amd64/Packages.gz
|
|
||||||
f82d685802fbb32fec3c9ba8e11e55b9 115 main/binary-amd64/Release
|
|
||||||
2dbe62e524736a210a209549cf06258d 614 main/binary-arm64/Packages
|
|
||||||
68fe69fd6d835c41d0cd7f65c84b91cd 437 main/binary-arm64/Packages.gz
|
|
||||||
113dd4f621500874592b2a2f1eeb45ae 115 main/binary-arm64/Release
|
|
||||||
SHA1:
|
|
||||||
4cda7a7ce7ac891de03539cbbc5157cb7f6498af 614 main/binary-amd64/Packages
|
|
||||||
4c1ed3dfebd68b17395d38aa1b41358e7241d048 440 main/binary-amd64/Packages.gz
|
|
||||||
1ff55a261c49c41f38e6da56f1f5d7136d38b08f 115 main/binary-amd64/Release
|
|
||||||
656e0fecef823842592a3fc986796d16eb4bcbda 614 main/binary-arm64/Packages
|
|
||||||
cc2d6f5b302e80ecb235cd54ee5092366c896096 437 main/binary-arm64/Packages.gz
|
|
||||||
be63fa980d70857efdc424c837cd54ab986a40cd 115 main/binary-arm64/Release
|
|
||||||
SHA256:
|
|
||||||
3e179e5b3a6f64d8af0bde1783160f9e64ea16a9c8569a4765d612440835c036 614 main/binary-amd64/Packages
|
|
||||||
32fd8982acea5cf8ad51d0f052cb36f46a1355a1c1a5dcbe2c7cf385ed98589b 440 main/binary-amd64/Packages.gz
|
|
||||||
c670ad086ec5b85d17211cb15e8e4ac1fb49a6398d0c9672992c26a009229d8c 115 main/binary-amd64/Release
|
|
||||||
0a8d4c42ad644896b12a6a1dd1b1bf66cad84d7419edc5f5294efbd42a445107 614 main/binary-arm64/Packages
|
|
||||||
a55070045fd0f6833a35900e2113217fb3285a8f45dd143b659934bf95e5f3ef 437 main/binary-arm64/Packages.gz
|
|
||||||
4a90ce2395fbe57635b23de83540564c0917b2f419cd69ab2630fc1520bb5c11 115 main/binary-arm64/Release
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iHUEARYKAB0WIQSq48VrHi02dxCM8oCDybDbLI+dFgUCal5spAAKCRCDybDbLI+d
|
|
||||||
FmZXAP92H8E2imCo7OfI8uIWtwsiN6/CogSpw15i7DLRwV5fDQEA3KK7zK/zkEPC
|
|
||||||
+9zsug5Du6xzZs49W3t0zNhJndt5yAg=
|
|
||||||
=Tpxj
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
Origin: arabianq
|
|
||||||
Label: PipeWire Soundpad
|
|
||||||
Codename: stable
|
|
||||||
Date: Mon, 20 Jul 2026 18:44:52 UTC
|
|
||||||
Architectures: amd64 arm64
|
|
||||||
Components: main
|
|
||||||
Description: APT Repository for PWSP
|
|
||||||
MD5Sum:
|
|
||||||
eacd7563641b7b6f7bb846ee95e5e608 614 main/binary-amd64/Packages
|
|
||||||
5902112d5f3ab6454ef7b4fd9187b85b 440 main/binary-amd64/Packages.gz
|
|
||||||
f82d685802fbb32fec3c9ba8e11e55b9 115 main/binary-amd64/Release
|
|
||||||
2dbe62e524736a210a209549cf06258d 614 main/binary-arm64/Packages
|
|
||||||
68fe69fd6d835c41d0cd7f65c84b91cd 437 main/binary-arm64/Packages.gz
|
|
||||||
113dd4f621500874592b2a2f1eeb45ae 115 main/binary-arm64/Release
|
|
||||||
SHA1:
|
|
||||||
4cda7a7ce7ac891de03539cbbc5157cb7f6498af 614 main/binary-amd64/Packages
|
|
||||||
4c1ed3dfebd68b17395d38aa1b41358e7241d048 440 main/binary-amd64/Packages.gz
|
|
||||||
1ff55a261c49c41f38e6da56f1f5d7136d38b08f 115 main/binary-amd64/Release
|
|
||||||
656e0fecef823842592a3fc986796d16eb4bcbda 614 main/binary-arm64/Packages
|
|
||||||
cc2d6f5b302e80ecb235cd54ee5092366c896096 437 main/binary-arm64/Packages.gz
|
|
||||||
be63fa980d70857efdc424c837cd54ab986a40cd 115 main/binary-arm64/Release
|
|
||||||
SHA256:
|
|
||||||
3e179e5b3a6f64d8af0bde1783160f9e64ea16a9c8569a4765d612440835c036 614 main/binary-amd64/Packages
|
|
||||||
32fd8982acea5cf8ad51d0f052cb36f46a1355a1c1a5dcbe2c7cf385ed98589b 440 main/binary-amd64/Packages.gz
|
|
||||||
c670ad086ec5b85d17211cb15e8e4ac1fb49a6398d0c9672992c26a009229d8c 115 main/binary-amd64/Release
|
|
||||||
0a8d4c42ad644896b12a6a1dd1b1bf66cad84d7419edc5f5294efbd42a445107 614 main/binary-arm64/Packages
|
|
||||||
a55070045fd0f6833a35900e2113217fb3285a8f45dd143b659934bf95e5f3ef 437 main/binary-arm64/Packages.gz
|
|
||||||
4a90ce2395fbe57635b23de83540564c0917b2f419cd69ab2630fc1520bb5c11 115 main/binary-arm64/Release
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iHUEABYKAB0WIQSq48VrHi02dxCM8oCDybDbLI+dFgUCal5spAAKCRCDybDbLI+d
|
|
||||||
FvjhAQCc7P+2nek9+6AO76Zz3vdbblVVu+uaQ32y0zybrF+89gD+MNlZ50j+a4xk
|
|
||||||
qYRaVSb20a7K/k9WhqxJL6xRzfpuLgY=
|
|
||||||
=gJb6
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Package: pwsp
|
|
||||||
Version: 1.12.5-1
|
|
||||||
Architecture: amd64
|
|
||||||
Homepage: https://pwsp.arabianq.ru
|
|
||||||
Maintainer: arabian
|
|
||||||
Installed-Size: 14002
|
|
||||||
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.5-1_amd64.deb
|
|
||||||
Size: 4467724
|
|
||||||
SHA256: 8b145ef5fb48bba8dddc34c1b9452e98c2c0c4a21f2b6d09d0a7f07a0847c17d
|
|
||||||
SHA1: 47db425b980d29f2e40800bb8d775eec3b071bc6
|
|
||||||
MD5sum: 2519213377967f0cd885967c3e604419
|
|
||||||
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: APT Repository for PWSP
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Package: pwsp
|
|
||||||
Version: 1.12.5-1
|
|
||||||
Architecture: arm64
|
|
||||||
Homepage: https://pwsp.arabianq.ru
|
|
||||||
Maintainer: arabian
|
|
||||||
Installed-Size: 11518
|
|
||||||
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.5-1_arm64.deb
|
|
||||||
Size: 3951656
|
|
||||||
SHA256: ce4e61d9233565c623ecfb02aad8c65c8d35dfe1c2d4755244696e61b83319ef
|
|
||||||
SHA1: 5ad4f9160fdbf4b44b4fed2044e797ca5522d2ea
|
|
||||||
MD5sum: 9f80c0fe862f96e3a148790d1961f624
|
|
||||||
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: 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.
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.
@@ -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.
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