mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
cef2db92cb
A second webview window (label "mini") with a compact player: album art, title, artist, prev/play/next, progress bar, pin-on-top toggle, expand back to main, close. Main minimizes on open and restores when the mini is hidden or closed. Spacebar toggles, arrow keys skip tracks. Cross-window sync: main window subscribes to playerStore and pushes `mini:sync` via emitTo on track / play-state change. Audio progress already broadcasts to all windows via `audio:progress`. Control actions (prev/next/toggle) come back via `mini:control`; main-window restore goes through a direct Rust command because WebKitGTK pauses JS in a minimized webview. Tiling-WM detection reused from existing `is_tiling_wm()` — always-on-top is skipped on Hyprland/Sway/i3 since it's ignored there anyway. Early alpha: no queue expand, no lyrics, no EQ, no drag-snap. Scope kept deliberately tight for v1; follow-ups planned. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
44 lines
1.3 KiB
JSON
44 lines
1.3 KiB
JSON
{
|
|
"$schema": "../gen/schemas/capability-schema.json",
|
|
"identifier": "default",
|
|
"description": "Default capabilities for Psysonic",
|
|
"platforms": ["linux", "macOS", "windows"],
|
|
"windows": ["main", "mini"],
|
|
"permissions": [
|
|
"core:default",
|
|
"shell:default",
|
|
{ "identifier": "shell:allow-open", "allow": [{ "url": "https://**" }] },
|
|
"global-shortcut:allow-register",
|
|
"global-shortcut:allow-unregister",
|
|
"store:default",
|
|
"store:allow-load",
|
|
"store:allow-set",
|
|
"store:allow-get",
|
|
"store:allow-save",
|
|
"dialog:default",
|
|
"dialog:allow-open",
|
|
"dialog:allow-save",
|
|
"fs:default",
|
|
"fs:allow-write-file",
|
|
"fs:allow-read-file",
|
|
"fs:allow-mkdir",
|
|
"fs:scope-download-recursive",
|
|
"fs:scope-home-recursive",
|
|
"window-state:allow-save-window-state",
|
|
"window-state:allow-restore-state",
|
|
"core:window:allow-set-title",
|
|
"core:window:allow-close",
|
|
"core:window:allow-minimize",
|
|
"core:window:allow-toggle-maximize",
|
|
"core:window:allow-hide",
|
|
"core:window:allow-show",
|
|
"core:window:allow-set-fullscreen",
|
|
"core:window:allow-is-fullscreen",
|
|
"core:window:allow-start-dragging",
|
|
"core:window:allow-create",
|
|
"core:webview:allow-create-webview-window",
|
|
"process:allow-restart",
|
|
"updater:default"
|
|
]
|
|
}
|