feat(flatpak): new wrapper in python that supports pwsp-daemon, pwsp-cli and pwsp-gui

This commit is contained in:
2026-02-23 12:08:47 +03:00
parent 81da36f03c
commit 3d3523fd7a
4 changed files with 40 additions and 7 deletions
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env python3
import argparse
import subprocess
if __name__ == "__main__":
parser = argparse.ArgumentParser(
prog="PWSP Flatpak",
add_help=True,
exit_on_error=True,
suggest_on_error=True,
color=True
)
subparsers = parser.add_subparsers(dest="command")
cli_parser = subparsers.add_parser("cli", add_help=False, prefix_chars=" ")
cli_parser.add_argument("args", nargs=argparse.REMAINDER, help="Arguments for pwsp-cli")
daemon_parser = subparsers.add_parser("daemon", add_help=True)
daemon_group = daemon_parser.add_mutually_exclusive_group(required=True)
daemon_group.add_argument("--start", action="store_true", help="Start pwps-daemon")
daemon_group.add_argument("--kill", action="store_true", help="Kill pwsp-daemon")
args = parser.parse_args()
command = args.command
if not command:
subprocess.Popen("pwsp-daemon")
subprocess.Popen("pwsp-gui")
else:
if command == "cli":
subprocess.Popen(["pwsp-cli"] + args.args)
elif command == "daemon":
if args.start:
subprocess.Popen("pwsp-daemon")
elif args.kill:
subprocess.Popen(["killall", "pwsp-daemon"])
-4
View File
@@ -1,4 +0,0 @@
#!/bin/sh
pwsp-daemon &
exec pwsp-gui "$@"
+1 -1
View File
@@ -1,7 +1,7 @@
[Desktop Entry] [Desktop Entry]
Name=PWSP (Soundpad) Name=PWSP (Soundpad)
Comment=Let's you play audio files through you microphone Comment=Let's you play audio files through you microphone
Exec=pwsp-wrapper.sh %u Exec=pwsp-wrapper.py %u
Icon=ru.arabianq.pwsp Icon=ru.arabianq.pwsp
Terminal=false Terminal=false
Type=Application Type=Application
+2 -2
View File
@@ -5,7 +5,7 @@ sdk: org.freedesktop.Sdk
sdk-extensions: sdk-extensions:
- org.freedesktop.Sdk.Extension.rust-stable - org.freedesktop.Sdk.Extension.rust-stable
- org.freedesktop.Sdk.Extension.llvm20 - org.freedesktop.Sdk.Extension.llvm20
command: pwsp-wrapper.sh command: pwsp-wrapper.py
finish-args: finish-args:
- --share=ipc - --share=ipc
- --socket=fallback-x11 - --socket=fallback-x11
@@ -38,7 +38,7 @@ modules:
- install -Dm755 target/release/pwsp-daemon /app/bin/pwsp-daemon - install -Dm755 target/release/pwsp-daemon /app/bin/pwsp-daemon
- install -Dm755 target/release/pwsp-cli /app/bin/pwsp-cli - install -Dm755 target/release/pwsp-cli /app/bin/pwsp-cli
- install -Dm755 target/release/pwsp-gui /app/bin/pwsp-gui - install -Dm755 target/release/pwsp-gui /app/bin/pwsp-gui
- install -Dm755 packages/flatpak/pwsp-wrapper.sh /app/bin/pwsp-wrapper.sh - install -Dm755 packages/flatpak/pwsp-wrapper.py /app/bin/pwsp-wrapper.py
- install -Dm644 assets/icon.png /app/share/icons/hicolor/256x256/apps/ru.arabianq.pwsp.png - install -Dm644 assets/icon.png /app/share/icons/hicolor/256x256/apps/ru.arabianq.pwsp.png
- install -Dm644 packages/flatpak/ru.arabianq.pwsp.desktop /app/share/applications/ru.arabianq.pwsp.desktop - install -Dm644 packages/flatpak/ru.arabianq.pwsp.desktop /app/share/applications/ru.arabianq.pwsp.desktop
- install -Dm644 packages/flatpak/ru.arabianq.pwsp.metainfo.xml /app/share/metainfo/ru.arabianq.pwsp.metainfo.xml - install -Dm644 packages/flatpak/ru.arabianq.pwsp.metainfo.xml /app/share/metainfo/ru.arabianq.pwsp.metainfo.xml