jeffvli
0e24eeeb1c
only show queue save toast on explicit request ( #2090 )
2026-06-03 00:28:12 -07:00
jeffvli
be3f959354
fetch local lyrics first if preferred ( #2100 )
2026-06-02 23:38:31 -07:00
Overdrive
deb69ef8ea
Feature: Add sleep timer for end of current album ( #2081 )
...
* Add logic for stopping playback at end of current album, unless in shuffle mode.
2026-06-02 23:22:56 -07: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
jeffvli
7243ed7f15
fix timestamp restore when song switched before playback start ( #2094 )
2026-05-31 23:09:33 -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
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
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
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
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
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
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
jeffvli
755f0aab9d
fix mediasession breaking on player repeat ( #1472 )
...
- switch to single web player instance for loop instead of dual-player
- this fixes the issue, but does have a breaking change if using the crossfade player
2026-05-22 01:32:22 -07:00
Tiago Simionato
8f40894926
feat: persist player timestamp ( #2043 )
...
* feat: persist player timestamp
2026-05-21 00:16:46 -07:00
Kendall Garner
2befcb4e74
disable node integration ( #2049 )
2026-05-20 21:06:28 -07:00
jeffvli
2d78c32a68
prevent track radio from prepending song in queue
...
- this behavior relates to when using NEXT or LAST as this will add a duplicate song
2026-05-20 20:49:29 -07:00
jeffvli
3551ee5077
prevent desktopCaturer from running unless visualizer explicitly requested ( #1931 )
2026-05-20 20:34:25 -07:00
jeffvli
64efbc5210
add table row playback controls
...
- supports song, album, artist, and album artist tables
- hovering over the first row index or track number column will display a hovercard for the playback controls
2026-05-19 21:03:27 -07:00
Kendall Garner
42e9394246
fix lint
2026-05-19 20:11:42 -07:00
Kendall Garner
afbe8fac52
include add to playlist action in quick search
2026-05-19 20:06:15 -07:00
jeffvli
ada94e5f5d
add loading state to playlist folder move
2026-05-19 01:50:36 -07:00
jeffvli
c8675ab600
prevent item drop on smart playlists
2026-05-19 01:30:27 -07:00
jeffvli
37367a6741
fix nested playlist folder drag behavior
2026-05-18 21:45:07 -07:00
jeffvli
e7b65c8e86
add drag over expand/collapse behavior for playlist folders
2026-05-18 19:15:28 -07:00
jeffvli
3d1095dbd8
adjust playlist folder design, add animations
2026-05-18 18:39:55 -07:00
jeffvli
da4284bac0
fix playlist folder drop on root behavior
...
- previously, nested folders dropped onto root would destroy the folder. instead, move the nested folder into the root
2026-05-18 18:39:55 -07:00
Kendall Garner
e85acee3e6
fix(remote): always send remote settings on init
2026-05-17 07:22:05 -07:00
jeffvli
fcd4c27fb8
support playlist folder drag/drop
2026-05-13 18:39:06 -07:00
jeffvli
c4ef6f3799
add sidebar playlist folder settings to env, add compact sidebar playlist view
2026-05-13 17:26:41 -07:00
Norman
74939c6417
Adding a hotkey to jump to the currently playing song (only works without pagination) ( #2024 )
2026-05-13 17:08:05 -07:00
Shawn
27a62a2a02
feat(sidebar): multi-level playlist folders with tree and navigation views ( #2017 )
...
Group playlists into folders using a configurable separator (default '/').
Three view modes:
- Single: first-level grouping only (original behavior)
- Tree: full recursive nesting with connecting lines (configurable indent and line color)
- Navigation: drill-down view with stacked breadcrumb chain
Folders are sorted before playlists at every level. New settings render as
indented sub-options under the master 'Enable folders' toggle.
2026-05-13 17:07:45 -07:00
jeffvli
ffe59b2c78
refactor scrobbling to use duration instead of progress ( #2010 )
...
- add scrobble status debug and indicator
- add force / reset scrobble
2026-05-12 22:04:46 -07:00
jeffvli
1616021451
fix regression on ActionBar width
...
- Mantine v9 uses a new inner div on the Grid component
2026-05-12 02:15:56 -07:00
Jeff
e2a1d813a9
Use proper casing for i18n locales ( #1998 )
2026-05-11 19:42:07 -07:00
Felix Prillwitz
5d4547080d
Always use remote url for discord rpc image ( #2009 )
...
* add option to force remote url for api calls
* force remote url for discord rpc image
2026-05-07 21:13:34 -07:00
jeffvli
9fb241dca2
remove server selector from collapsed sidebar
2026-05-07 20:54:42 -07:00
jeffvli
34e0c4bd4a
prevent first lyric line highlight before timestamp ( #1965 )
2026-05-01 21:33:40 -07:00
jeffvli
323130a877
add toggle for app-suspension for powersave block ( #1992 )
2026-05-01 21:24:45 -07:00
jeffvli
3b2aab74ac
enforce web player seek by seconds when less than 1 ( #1993 )
2026-05-01 21:12:20 -07:00