fiso64
5ac0aaeec0
fix(player): step correctly when seeking rapidly ( #2084 )
...
* fix(player): step correctly when seeking rapidly
mediaSkipBackward/mediaSkipForward compute the new target relative to
the timestamp store, which is only refreshed by a ~500ms engine poll.
Rapid presses within that window all read the same stale position and
recompute the same target, so the time appears stuck until the poll
catches up.
Update the timestamp store immediately when a seek is issued so
subsequent presses compute from the new position; the poll then just
reconciles to the same value. Also applied to mediaSeekToTimestamp so
absolute seeks reflect in the UI without the poll lag.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
* fix(player): unify seek comments per review
Use one canonical explanation in mediaSkipBackward and have
mediaSeekToTimestamp/mediaSkipForward reference it.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 23:11:21 +00:00
Kendall Garner
515cadb916
Better cross platform font handling ( #2104 )
...
* fix: better handling of custom font
Practically speaking, custom font seems to have only worked on Linux, because
`net.fetch` would include the mime type in the response headers which could validate the payload.
This doesn't appear to be the case on windows/macOS. Instead:
1. On Linux (or if some other system supports it), check the content type. If good, serve as normal
2. Otherwise, fetch the payload. Read the first four to five bytes and check for a valid magic number.
Additionally, to prevent arbitrary requests fetching other paths via injected content, sync the custom font path
to the main process, and then make _every_ request to `feishin:/` point to the same renderer path.
When setting the font, first send the path to the main process. This will register `feishin:/` to point
to the path provided. This is done via a promise-based set.
Finally, provide a default value for the file input (a best effort approximation for the last part of the file path)
on the file input component.
* make the linter happy
2026-06-02 19:34:16 +00:00
Hosted Weblate
4b4d64c7fc
Translated using Weblate
...
Currently translated at 100.0% (1244 of 1244 strings) (Catalan)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/
Translated using Weblate
Currently translated at 36.9% (460 of 1244 strings) (Ukrainian)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/uk/
Translated using Weblate
Currently translated at 20.5% (256 of 1244 strings) (Estonian)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/et/
Co-authored-by: Ondo <SparkyOndo@proton.me >
Co-authored-by: albatrays <weblate.duct925@passmail.net >
Co-authored-by: rimasx <riks_12@hot.ee >
2026-06-02 16:01:13 +02:00
Hosted Weblate
f7e1198482
Added translation using Weblate (Estonian)
...
Co-authored-by: rimasx <riks_12@hot.ee >
2026-06-01 15:15:06 +02:00
jeffvli
7243ed7f15
fix timestamp restore when song switched before playback start ( #2094 )
2026-05-31 23:09:33 -07:00
York
7e9a78898f
fix: punctuation hotkeys not captured ( #2091 )
2026-05-31 22:43:58 -07:00
Kendall Garner
6aab8d4121
fix(scrobble): use proper pause/unpause for seek, use ms for subsonic
2026-05-31 21:13:11 -07:00
Kendall Garner
70594a696b
chore(context menu): show go to only for albums/tracks, prefer artist over album artist where possible
2026-05-31 19:44:58 -07:00
York
08b4c620f2
Merge pull request #2082 from york9675/fix/spacebar
...
Fix playback hotkeys by preventing browser default
2026-05-31 14:36:53 +00:00
Hosted Weblate
7a20cf3853
Translated using Weblate
...
Currently translated at 100.0% (1244 of 1244 strings) (Chinese (Traditional Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Co-authored-by: York <goog10216922@gmail.com >
2026-05-31 10:51:08 +02:00
Hosted Weblate
dd186c570f
Translated using Weblate
...
Currently translated at 0.8% (10 of 1244 strings) (Tagalog)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/tl/
Co-authored-by: Redd <reddtheeditor@gmail.com >
2026-05-31 08:04:07 +02:00
Hosted Weblate
d5e9d491b6
Added translation using Weblate (Tagalog)
...
Co-authored-by: Redd <reddtheeditor@gmail.com >
2026-05-31 06:08:43 +02:00
Hosted Weblate
28dc822e4f
Translated using Weblate
...
Currently translated at 100.0% (1244 of 1244 strings) (Spanish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translated using Weblate
Currently translated at 100.0% (1244 of 1244 strings) (Polish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translated using Weblate
Currently translated at 100.0% (1244 of 1244 strings) (Czech)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translated using Weblate
Currently translated at 84.1% (1047 of 1244 strings) (English)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/en/
Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org >
Co-authored-by: Fordas <fordas15@gmail.com >
Co-authored-by: Lucas Winther <lucasw89@live.dk >
Co-authored-by: skajmer <skajmer@protonmail.com >
2026-05-30 19:01:12 +00:00
Kendall Garner
def1b1e710
fix(butterchurn): allow unsafe wasm for butterchurn
2026-05-30 07:01:53 -07:00
Kendall Garner
2ff9e4b0a2
fix(subsonic): fix favoriting/unfavoriting on playlist songs
2026-05-29 09:19:39 -07:00
jeffvli
49bfc907cd
bump lock-threads to v6
2026-05-28 23:07:47 -07:00
jeffvli
34314bdf46
update to v1.12.1
v1.12.1
2026-05-28 02:06:41 -07:00
jeffvli
9d53c53c54
fix queue end handling to prevent repeat
2026-05-28 02:06:07 -07:00
jeffvli
8acd585630
clean up discord rpc implementation with usePlayerEvents
2026-05-28 01:50:29 -07:00
jeffvli
1f5907716f
disable interval-based timeupdate scrobbles
2026-05-28 00:59:30 -07:00
jeffvli
99ae0c99c6
fix restart requirement logic when switching windowbar style
2026-05-28 00:46:07 -07:00
jeffvli
a56253cd3a
fix queue height when using web windowbar style ( #2068 )
2026-05-28 00:46:06 -07:00
Kendall Garner
a2cdce66bc
chore(github): update bug report template
2026-05-27 21:20:08 -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
Hosted Weblate
1ed185606d
Translated using Weblate
...
Currently translated at 100.0% (1244 of 1244 strings) (Chinese (Traditional Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translated using Weblate
Currently translated at 100.0% (1244 of 1244 strings) (Polish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translated using Weblate
Currently translated at 54.9% (684 of 1244 strings) (German)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/
Translated using Weblate
Currently translated at 100.0% (1244 of 1244 strings) (Spanish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translated using Weblate
Currently translated at 100.0% (1244 of 1244 strings) (Czech)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translated using Weblate
Currently translated at 17.8% (222 of 1244 strings) (Arabic)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ar/
Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org >
Co-authored-by: Fordas <fordas15@gmail.com >
Co-authored-by: Laalo <hyohnoo3@gmail.com >
Co-authored-by: Zarakkas <kaz@users.noreply.hosted.weblate.org >
Co-authored-by: linger <linger0517@gmail.com >
Co-authored-by: skajmer <skajmer@protonmail.com >
2026-05-27 05:11:44 +00:00
jeffvli
d9da588c7c
add workaround for identical Jellyfin release name bug ( #2041 )
2026-05-26 22:06:40 -07:00
jeffvli
e206136156
add physical key mapping for useHotkeys to support alt keyboard languages ( #2051 )
2026-05-26 21:55:08 -07:00
jeffvli
57b11e0dae
remove invalid expand button on Playlist table index column
2026-05-26 20:49:19 -07:00
jeffvli
2fc130d709
validate mpv extra parameters to prevent empty string param ( #2058 )
2026-05-26 20:46:17 -07:00
jeffvli
1aa6b88cfa
allow transcode on waveform streamURL ( #2060 )
2026-05-26 20:35:23 -07:00
jeffvli
329d028edd
add open delay to scrobble status HoverCard
2026-05-26 20:05:01 -07:00
jeffvli
4955f30081
fix regression on numeric column designation ( #2065 )
2026-05-26 19:51:42 -07:00
jeffvli
bf7ca937ff
force pnpm v10 in dockerfile
2026-05-25 22:00:31 -07:00
Hosted Weblate
2193fa4251
Update translation files
...
Updated by "Cleanup translation files" hook in Weblate.
Translated using Weblate
Currently translated at 100.0% (1231 of 1231 strings) (Chinese (Traditional Han script))
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translated using Weblate
Currently translated at 15.8% (195 of 1231 strings) (Arabic)
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ar/
Translated using Weblate
Currently translated at 100.0% (1231 of 1231 strings) (Polish)
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translated using Weblate
Currently translated at 54.3% (669 of 1230 strings) (German)
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Laalo <hyohnoo3@gmail.com >
Co-authored-by: Timon Seidel <timongcraft@users.noreply.hosted.weblate.org >
Co-authored-by: York <goog10216922@gmail.com >
Co-authored-by: skajmer <skajmer@protonmail.com >
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
v1.12.0
2026-05-26 06:05:29 +02:00
jeffvli
9124604b89
update to v1.12.0
2026-05-25 21:01:37 -07:00
jeffvli
239ef4a4ec
add album mode for autodj
...
- add selection modes: similar, random
- add autodj settings in playerbar popover
2026-05-25 19:23:37 -07:00
jeffvli
f3b72504f1
fix missing count configuration for track radio
2026-05-25 19:10:45 -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
jeffvli
61c6036d41
cap scrobble status at max values
2026-05-25 13:26:12 -07:00
jeffvli
95ae474cc6
fix playerbar slider styles
...
- left / right values should be consistent width
2026-05-25 13:26:12 -07:00
jeffvli
504bbeed91
handle positional scrobbles for OS
2026-05-25 13:26:11 -07:00
jeffvli
0e5b3450dd
set ignoreScrobble, playbackRate as optional params
2026-05-25 13:26:11 -07:00
jeffvli
650ae0b320
add reportPlayback as default Jellyfin feature
2026-05-25 13:26:11 -07:00
jeffvli
66cfab3b57
add playbackReport handler to Subsonic controller
2026-05-25 13:26:10 -07:00
jeffvli
0455d5bfb8
add reportPlayback server feature
2026-05-25 13:26:09 -07:00
jeffvli
112449576e
add OS reportPlayback endpoint and types
2026-05-25 13:26:09 -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
Hosted Weblate
28b8894b49
Translated using Weblate
...
Currently translated at 53.2% (655 of 1230 strings) (German)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/
Co-authored-by: Timon Seidel <svc-weblate-24123097555425b5@timongcraft.de >
2026-05-24 16:11:35 +02:00
Hosted Weblate
41d5694f1f
Translated using Weblate
...
Currently translated at 100.0% (1230 of 1230 strings) (Indonesian)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/id/
Translated using Weblate
Currently translated at 57.4% (707 of 1230 strings) (Portuguese)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pt/
Co-authored-by: Arif Budiman <arifpedia@gmail.com >
Co-authored-by: ssantos <ssantos@web.de >
2026-05-23 13:11:45 +00:00