Commit Graph

217 Commits

Author SHA1 Message Date
Kendall Garner def1b1e710 fix(butterchurn): allow unsafe wasm for butterchurn 2026-05-30 07:01:53 -07:00
Jonathan Grotelüschen 7454832663 fix: set RESOURCES_PATH relative to app.getAppPath() (#2064)
When running the app with system electron, process.resourcesPath points
to the resources folder of the system electron, not the one from
feishin.
2026-05-27 20:01:54 -07:00
jeffvli 2fc130d709 validate mpv extra parameters to prevent empty string param (#2058) 2026-05-26 20:46:17 -07:00
Simon Bråten f098f848a3 feat: reading custom css from external file (#2012)
* feat: reading custom css from external file

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-05-25 14:53:53 -07:00
muckymucky 22d37135ae fix: strip playback accelerators whenever any text input is focused (#2059)
The command-palette-specific IPC approach didn't cover other modals
with inputs (settings search, playlist creation, etc.). Replace it
with document-level focusin/focusout listeners that signal the main
process whenever any input/textarea/contenteditable gains or loses
focus, so the menu rebuild is triggered automatically for all current
and future input surfaces.

Co-authored-by: muckymucky <muckymucky@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 13:35:45 -07:00
muckymucky 3122f4121e fix: strip playback menu accelerators while command palette is open (#2055)
On macOS, menu item accelerators (e.g. Space for Play/Pause) fire even
when an input has focus, bypassing the renderer-side useHotkeys guard
added in #1925. Typing a space character in the command palette search
toggled play/pause instead of inserting a space.

Track command palette open state in the main process via IPC. When the
palette is open, rebuild the application menu with empty playback
accelerators so single-key shortcuts no longer intercept keystrokes
intended for the search input. Restore accelerators when the palette
closes.

Co-authored-by: Jack McCrea <jack@MacBookPro.lan>
2026-05-25 11:24:15 -07:00
Kendall Garner 7befd70e21 Apply additional security recommendations (#2050)
* enable sandbox

* enable CSP (umami tentatively works?) and reduce amount of ipc APIs exposed

* remove csp from index
2026-05-22 22:09:22 -07:00
Kendall Garner 2befcb4e74 disable node integration (#2049) 2026-05-20 21:06:28 -07:00
jeffvli 3551ee5077 prevent desktopCaturer from running unless visualizer explicitly requested (#1931) 2026-05-20 20:34:25 -07:00
jeffvli 323130a877 add toggle for app-suspension for powersave block (#1992) 2026-05-01 21:24:45 -07:00
York d24ca04878 fix: detect Homebrew mpv on macOS (#1989) 2026-05-01 11:43:07 -07:00
York b99899f128 fix MPV visualizer on macOS and handle exclusive mode UX (#1930) 2026-04-13 20:47:03 -07:00
Jeff 16c9e6cc1b Fix various build issues (#1942)
* remove dynamic import for platform features

* increase node memory limit on macOS build

* fix invalid dynamic imports in renderer

* remove discord-rpc import in renderer
2026-04-10 01:54:11 -07:00
noctuum 6adb29bc38 fix(linux): remove unnecessary desktopCapturer call from display media handler
The setDisplayMediaRequestHandler was calling desktopCapturer.getSources()
to provide a video source that the renderer never uses (it requests
video: false and only consumes audio tracks). On Wayland, this created a
new xdg-desktop-portal ScreenCast session on every launch, showing an
unavoidable screen share dialog because Electron does not persist
PipeWire restore tokens across desktopCapturer sessions.

Simplified the handler to return only { audio: 'loopback' }, which
captures system audio via PipeWire/PulseAudio monitor source without
any portal interaction.
2026-04-08 04:56:05 +07:00
jeffvli 3f300c40cc add in-app prompt for system audio connection 2026-04-05 22:19:09 -07:00
Kendall Garner 6c2cd1c274 fix(mpris): serve minimal metadata when playing radio
1. MPRIS (or `mpris-service`) is very fragile. If an invalid `mpris:trackid` (something with `-` or spaces) is passed in, it breaks. Use a minimal track id instead
2. Only populate album/artist/title
2026-04-05 08:01:28 -07:00
jeffvli 94886a2d5a add system audio loopback for webaudio 2026-04-05 00:48:38 -07:00
York d60ed0a793 feat: macOS menu enhancement (#1903) 2026-04-04 17:35:30 -07:00
jeffvli f3a6027e6d fix mpv progress interval still running after queue ends 2026-04-03 18:58:58 -07:00
ebee04 0d3cf912d3 fix click on feishin icon in macos menu bar (tray) causing switch to feishin window (#1881) 2026-03-29 20:34:18 -07:00
jeffvli ede47fbf8f fix missing artist name in lyrics search query for lrclib (#1871) 2026-03-25 17:49:50 -07:00
jeffvli 9eb64079f7 handle disabled features in a single flag (#1271) 2026-03-25 17:41:08 -07:00
jeffvli f2ab01199f disable WaylandFractionScaleV1 (#1271) 2026-03-15 11:42:31 -07:00
riccardo 16ac536f93 feat(lyrics): simpmusic lyrics provider (#1820)
* feat(lyrics): simpmusic lyrics provider
2026-03-11 01:04:55 -07:00
jeffvli 6a47e99680 add manual update notice for macOS, disable autoinstall (#1725) 2026-03-09 01:31:33 -07:00
jeffvli dbc215c44f add toggle visibility behavior to tray icon (#1793) 2026-03-04 21:38:11 -08:00
jeffvli afca396654 attempt to fix mpv autoNext behavior (#1768) 2026-02-27 00:39:27 -08:00
Kendall Garner a377eae2f4 fix(build): do not add hash to favicon and assets 2026-02-20 08:48:36 -08:00
Kendall Garner 12ff690619 fix(window): recreate window on macos when closed but not quit 2026-02-18 21:50:44 -08:00
jeffvli 80292ae579 fix alpha autoupdater logic to use correct config for latest 2026-02-12 18:17:08 -08:00
jeffvli 74b615dba7 include stable version check on alpha update 2026-02-10 20:20:37 -08:00
Martín González Gómez 668de93829 Open settings with shortcut (#1655)
* Open settings with shortcut. Also add settings to menubar.
2026-02-07 15:19:05 -08:00
jeffvli cf663de2fc add handlers and setting for nightly release 2026-02-05 23:45:32 -08:00
Steffen Martinsen b8228844df feat: Add support for player controls in macOS dock menu (#1627)
* Added simple macOS dock menu similar to tray menu

* Enhanced and moved dock menu to darwin folder and enabled mpris on macOS to support play/pause state

* Added missing property sortName to silence TS error
2026-01-30 12:01:02 -08:00
jeffvli 871bb9da3a update lyrics autofetcher to async search 2026-01-29 20:52:36 -08:00
Jeff c79e041777 Fix macOS tray icon (#1600)
* add 32x32 icon for macOS tray

* add 16x16 image

* add black/transparent icon
2026-01-23 21:10:49 -08:00
jeffvli a63763bfe8 use dev path for local settings store 2026-01-18 18:53:21 -08:00
Kendall Garner 04f7c7fdd4 fix(remote): proper image when mpris and remote interleave 2026-01-18 18:18:36 -08:00
jeffvli d10e4a3d68 rework auto lyrics matcher (#1569)
- remove priority order in favor of best match from all selected providers (lrclib synchronized)
- improve % match for title / artist
2026-01-18 16:02:37 -08:00
jeffvli 7f1c4a4d18 add sync status to lrclib lyrics (#1568) 2026-01-18 15:47:07 -08:00
jeffvli 431ff76e19 clean up old logs 2026-01-16 11:05:33 -08:00
jeffvli 9e57125c96 reduce window minHeight to 120px (#1561) 2026-01-16 03:55:18 -08:00
jeffvli 41054ed819 add audio device selection for mpv 2026-01-14 19:12:36 -08:00
Michael Levy 244aebb0f5 fix: Use .ico file on Windows (#1544)
* use ico file on windows
2026-01-14 18:25:43 -08:00
jeffvli ae49e3cf2f allow system tray in macOS (#1539) 2026-01-14 18:21:26 -08:00
jeffvli 22c0f8f8c6 add manual garbage collection 2026-01-01 12:21:20 -08:00
jeffvli 8ba87d57cd fix default lyrics fetchers 2025-12-28 20:05:37 -08:00
jeffvli 1aa91fe2f5 add defaults to main settings to sync with renderer 2025-12-28 18:12:14 -08:00
jeffvli 4eac6457ea add MPRIS volume handler (#1415) 2025-12-28 01:15:38 -08:00
BatteredBunny 63015195b0 feat: Add DISABLE_AUTO_UPDATES env variable for disabling updates in the application entirely (#1446) 2025-12-28 00:50:55 -08:00