203 Commits

Author SHA1 Message Date
thang.tranxuan
3084a7f4f9 Add manual trigger option for WinGet release workflow 2025-11-18 11:28:04 +07:00
thang.tranxuan
2f1e4bef83 Merge branch 'release' 2025-11-18 11:21:09 +07:00
thang.tranxuan
aff8aeef5f Pin winget-releaser action to v2 2025-11-18 11:19:58 +07:00
tranxuanthang
718577e455 Bump version to 1.0.2 in README
Updated download links and version numbers in README.
2025-11-18 11:12:31 +07:00
thang.tranxuan
ab46490bf2 Bump version 1.0.2 2025-11-18 10:19:09 +07:00
thang.tranxuan
703185976c Skipping synced lyrics tracks also skips instrumental tracks 2025-11-18 10:05:29 +07:00
tranxuanthang
8e3516f253 Merge pull request #269 from coffee2go/main
perf(lyrics): use existing file handle for embedding lyrics
2025-11-17 15:11:49 +07:00
tranxuanthang
58a41d0a0d Merge pull request #239 from BinaryMan32/kira-0.10.8
update kira to 0.10.8
2025-11-16 05:13:20 +07:00
Fred Fettinger
6dfac39e3b Merge branch 'main' into kira-0.10.8 2025-11-14 15:18:17 -06:00
Danyel
86e4553363 fix(lyrics): seek to start of file, not end 2025-11-09 19:35:39 +01:00
tranxuanthang
fbdd969d58 Merge pull request #237 from BinaryMan32/edit-lyrics-codemirror-style-perf
EditLyrics: reduce CPU usage
2025-11-05 14:37:12 +07:00
tranxuanthang
e426e1e5b1 Merge pull request #235 from BinaryMan32/seek-round-progress-percent
Seek: round progressPercent to thousandths
2025-11-05 14:36:29 +07:00
tranxuanthang
8b56f9ba0f Merge pull request #236 from BinaryMan32/hide-equalizer-when-editing-lyrics
TrackItem: hide Equalizer when editing lyrics
2025-11-05 14:31:48 +07:00
tranxuanthang
4f2fca4a1b Merge pull request #275 from DNEGEL3125/auto-dark-mode
Fix auto theme mode
2025-11-04 16:39:01 +07:00
tranxuanthang
e48b41533d Merge pull request #274 from jo-chemla/release-winget
Add GitHub Actions workflow for WinGet release
2025-11-04 11:16:22 +07:00
Jonathan Chemla
c730237413 Fix regex formatting in release-winget.yml 2025-11-03 11:05:42 +01:00
DNEGEL3125
fb6c22cd92 Fix auto theme mode
- If the theme mode is set to auto, the system theme will be read when the application starts
- When the theme mode is set to auto, changes to the system theme will be applied to the window immediately
2025-11-02 21:47:32 +08:00
Jonathan Chemla
03f77b3580 Add GitHub Actions workflow for WinGet release
This PR uses [winget-releaser](https://github.com/vedantmgoyal9/winget-releaser) (which uses Komac). It requires a `Classic Github Personal Access Token` with `public_repo` scope is created, following [this link](https://github.com/settings/tokens/new), then the Token can be added to the repo as a secret named `WINGET_ACC_TOKEN`. See below, that user also will have to fork the winget-pkgs repository.

> Notes:
> You will need to create a *classic* Personal Access Token (PAT) with `public_repo` scope. New fine-grained PATs aren't supported by the action. Review #172 for information.
> Fork [microsoft/winget-pkgs](https://github.com/microsoft/winget-pkgs) under the same account/organization as the project's repository. If you are forking winget-pkgs on a different account (e.g. bot/personal account), you can use the fork-user input to specify the username of the account where the fork is present.
2025-10-31 13:31:21 +01:00
Danyel
6fef39b663 perf(lyrics): use existing file handle for embedding lyrics 2025-10-24 16:32:01 +02:00
tranxuanthang
357697862b Merge pull request #265 from DNEGEL3125/macos-icon
Improve macOS icon by adding padding
2025-10-21 21:55:14 +07:00
DNEGEL3125
1a4d343f21 Improve macOS icon by adding padding
Without adding transparent padding, the icon will appear larger than other apps on macOS.
2025-10-21 04:30:54 +08:00
tranxuanthang
b9dbb2ed75 Enhance README with OS support and installer links
Updated OS support section with installer links for Windows, Linux, and macOS.
2025-10-20 10:01:37 +07:00
tranxuanthang
5134b5ca71 Update README.md 2025-10-06 11:00:27 +07:00
thang.tranxuan
6b9ed1e8cb Bump version 1.0.1 2025-10-03 16:26:26 +07:00
thang.tranxuan
7a09152c1c Prevent crashes when there is no audio output device 2025-10-03 16:23:30 +07:00
tranxuanthang
60c2efc916 Merge pull request #254 from guihkx/cargo-update
Update cargo dependencies
2025-10-03 13:28:34 +07:00
guihkx
08eef731fe Update cargo dependencies
This is just the result of running "cargo update".

Most notably, this updates tauri-plugin-global-shortcut from 2.2.0 to
2.3.0, in order to fix a startup crash on pure Wayland sessions.

This crash was happening because the underlying global-hotkey dependency
used by tauri-plugin-global-shortcut, was dereferencing a null pointer
in version 0.6:

https://github.com/tauri-apps/global-hotkey/blob/global-hotkey-v0.6.4/src/platform_impl/x11/mod.rs#L191-L192

That XOpenDisplay() call can fail for many reasons, one of them being
the non-existence of an X server running (e.g. when we're on a pure
Wayland session).

For reference, the gdb stack trace of the crash looks like this:

  Thread 11 (Thread 0x7fffe1b8b6c0 (LWP 60) "LRCGET"):
  #0  0x00007fffed3ca524 in XDefaultRootWindow () at /usr/lib/x86_64-linux-gnu/libX11.so.6
  #1  0x000055555617bd03 in global_hotkey::platform_impl::platform::events_processor ()
  #2  0x000055555618c066 in std::sys::backtrace::__rust_begin_short_backtrace ()
  #3  0x0000555556189d3a in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
  #4  0x00005555567caf8f in std::sys::pal::unix::thread::Thread::new::thread_start ()
  #5  0x00007fffef09a56a in start_thread () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #6  0x00007fffef11de54 in clone () at /usr/lib/x86_64-linux-gnu/libc.so.6

  Thread 10 (Thread 0x7fffe2b846c0 (LWP 59) "[pango] fontcon"):
  #0  0x00007fffef11bdcd in syscall () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #1  0x00007fffef4c0a4b in g_cond_wait () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #2  0x00007fffef452dac in g_async_queue_pop_intern_unlocked () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #3  0x00007fffef45329c in g_async_queue_pop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #4  0x00007fffecffcac9 in fc_thread_func () at /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
  #5  0x00007fffef4c1209 in g_thread_proxy () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #6  0x00007fffef09a56a in start_thread () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #7  0x00007fffef11de54 in clone () at /usr/lib/x86_64-linux-gnu/libc.so.6

  Thread 9 (Thread 0x7fffe35fd6c0 (LWP 58) "gdbus"):
  #0  0x00007fffef0a2c02 in __syscall_cancel_arch () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #1  0x00007fffef096d3c in __internal_syscall_cancel () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #2  0x00007fffef096d84 in __syscall_cancel () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #3  0x00007fffef111196 in ppoll () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #4  0x00007fffef48dd21 in g_main_context_iterate_unlocked.isra () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #5  0x00007fffef48e747 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #6  0x00007ffff1540332 in gdbus_shared_thread_func () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
  #7  0x00007fffef4c1209 in g_thread_proxy () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #8  0x00007fffef09a56a in start_thread () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #9  0x00007fffef11de54 in clone () at /usr/lib/x86_64-linux-gnu/libc.so.6

  Thread 8 (Thread 0x7fffe3dfe6c0 (LWP 57) "gmain"):
  #0  0x00007fffef0a2c02 in __syscall_cancel_arch () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #1  0x00007fffef096d3c in __internal_syscall_cancel () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #2  0x00007fffef096d84 in __syscall_cancel () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #3  0x00007fffef111196 in ppoll () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #4  0x00007fffef48dd21 in g_main_context_iterate_unlocked.isra () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #5  0x00007fffef48e453 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #6  0x00007fffef48e4a1 in glib_worker_main () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #7  0x00007fffef4c1209 in g_thread_proxy () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #8  0x00007fffef09a56a in start_thread () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #9  0x00007fffef11de54 in clone () at /usr/lib/x86_64-linux-gnu/libc.so.6

  Thread 7 (Thread 0x7fffe89096c0 (LWP 56) "pool-spawner"):
  #0  0x00007fffef11bdcd in syscall () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #1  0x00007fffef4c0a4b in g_cond_wait () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #2  0x00007fffef452dac in g_async_queue_pop_intern_unlocked () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #3  0x00007fffef4c14e4 in g_thread_pool_spawn_thread () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #4  0x00007fffef4c1209 in g_thread_proxy () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #5  0x00007fffef09a56a in start_thread () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #6  0x00007fffef11de54 in clone () at /usr/lib/x86_64-linux-gnu/libc.so.6

  Thread 5 (Thread 0x7fffe8b0a6c0 (LWP 51) "tokio-runtime-w"):
  #0  0x00007fffef11bdcd in syscall () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #1  0x0000555556568509 in parking_lot::condvar::Condvar::wait_until_internal ()
  #2  0x0000555556517efe in tokio::runtime::scheduler::multi_thread::park::Parker::park ()
  #3  0x000055555650d7f5 in tokio::runtime::scheduler::multi_thread::worker::Context::park_timeout ()
  #4  0x000055555650cee4 in tokio::runtime::scheduler::multi_thread::worker::Context::run ()
  #5  0x0000555556516378 in tokio::runtime::context::scoped::Scoped<T>::set ()
  #6  0x000055555651452b in tokio::runtime::context::runtime::enter_runtime ()
  #7  0x000055555650c46b in tokio::runtime::scheduler::multi_thread::worker::run ()
  #8  0x00005555565014cd in <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll ()
  #9  0x0000555556504bf7 in tokio::runtime::task::core::Core<T,S>::poll ()
  #10 0x00005555564f9d01 in tokio::runtime::task::harness::Harness<T,S>::poll ()
  #11 0x000055555651f709 in tokio::runtime::blocking::pool::Inner::run ()
  #12 0x00005555564fb597 in std::sys::backtrace::__rust_begin_short_backtrace ()
  #13 0x00005555565028c2 in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
  #14 0x00005555567caf8f in std::sys::pal::unix::thread::Thread::new::thread_start ()
  #15 0x00007fffef09a56a in start_thread () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #16 0x00007fffef11de54 in clone () at /usr/lib/x86_64-linux-gnu/libc.so.6

  Thread 4 (Thread 0x7fffe8d0b6c0 (LWP 50) "tokio-runtime-w"):
  #0  0x00007fffef11bdcd in syscall () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #1  0x0000555556568509 in parking_lot::condvar::Condvar::wait_until_internal ()
  #2  0x0000555556517efe in tokio::runtime::scheduler::multi_thread::park::Parker::park ()
  #3  0x000055555650d7f5 in tokio::runtime::scheduler::multi_thread::worker::Context::park_timeout ()
  #4  0x000055555650cee4 in tokio::runtime::scheduler::multi_thread::worker::Context::run ()
  #5  0x0000555556516378 in tokio::runtime::context::scoped::Scoped<T>::set ()
  #6  0x000055555651452b in tokio::runtime::context::runtime::enter_runtime ()
  #7  0x000055555650c46b in tokio::runtime::scheduler::multi_thread::worker::run ()
  #8  0x00005555565014cd in <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll ()
  #9  0x0000555556504bf7 in tokio::runtime::task::core::Core<T,S>::poll ()
  #10 0x00005555564f9d01 in tokio::runtime::task::harness::Harness<T,S>::poll ()
  #11 0x000055555651f709 in tokio::runtime::blocking::pool::Inner::run ()
  #12 0x00005555564fb597 in std::sys::backtrace::__rust_begin_short_backtrace ()
  #13 0x00005555565028c2 in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
  #14 0x00005555567caf8f in std::sys::pal::unix::thread::Thread::new::thread_start ()
  #15 0x00007fffef09a56a in start_thread () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #16 0x00007fffef11de54 in clone () at /usr/lib/x86_64-linux-gnu/libc.so.6

  Thread 3 (Thread 0x7fffe3fff6c0 (LWP 49) "tokio-runtime-w"):
  #0  0x00007fffef11bdcd in syscall () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #1  0x0000555556568509 in parking_lot::condvar::Condvar::wait_until_internal ()
  #2  0x0000555556517efe in tokio::runtime::scheduler::multi_thread::park::Parker::park ()
  #3  0x000055555650d7f5 in tokio::runtime::scheduler::multi_thread::worker::Context::park_timeout ()
  #4  0x000055555650cee4 in tokio::runtime::scheduler::multi_thread::worker::Context::run ()
  #5  0x0000555556516378 in tokio::runtime::context::scoped::Scoped<T>::set ()
  #6  0x000055555651452b in tokio::runtime::context::runtime::enter_runtime ()
  #7  0x000055555650c46b in tokio::runtime::scheduler::multi_thread::worker::run ()
  #8  0x00005555565014cd in <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll ()
  #9  0x0000555556504bf7 in tokio::runtime::task::core::Core<T,S>::poll ()
  #10 0x00005555564f9d01 in tokio::runtime::task::harness::Harness<T,S>::poll ()
  #11 0x000055555651f709 in tokio::runtime::blocking::pool::Inner::run ()
  #12 0x00005555564fb597 in std::sys::backtrace::__rust_begin_short_backtrace ()
  #13 0x00005555565028c2 in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
  #14 0x00005555567caf8f in std::sys::pal::unix::thread::Thread::new::thread_start ()
  #15 0x00007fffef09a56a in start_thread () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #16 0x00007fffef11de54 in clone () at /usr/lib/x86_64-linux-gnu/libc.so.6

  Thread 2 (Thread 0x7fffe8f0c6c0 (LWP 48) "tokio-runtime-w"):
  #0  0x00007fffef0a2c02 in __syscall_cancel_arch () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #1  0x00007fffef096d3c in __internal_syscall_cancel () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #2  0x00007fffef096d84 in __syscall_cancel () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #3  0x00007fffef11e315 in epoll_wait () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #4  0x00005555565229da in mio::poll::Poll::poll ()
  #5  0x00005555564feab9 in tokio::runtime::io::driver::Driver::turn ()
  #6  0x0000555556510935 in tokio::runtime::time::Driver::park_internal ()
  #7  0x0000555556517e6e in tokio::runtime::scheduler::multi_thread::park::Parker::park ()
  #8  0x000055555650d7f5 in tokio::runtime::scheduler::multi_thread::worker::Context::park_timeout ()
  #9  0x000055555650cee4 in tokio::runtime::scheduler::multi_thread::worker::Context::run ()
  #10 0x0000555556516378 in tokio::runtime::context::scoped::Scoped<T>::set ()
  #11 0x000055555651452b in tokio::runtime::context::runtime::enter_runtime ()
  #12 0x000055555650c46b in tokio::runtime::scheduler::multi_thread::worker::run ()
  #13 0x00005555565014cd in <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll ()
  #14 0x0000555556504bf7 in tokio::runtime::task::core::Core<T,S>::poll ()
  #15 0x00005555564f9d01 in tokio::runtime::task::harness::Harness<T,S>::poll ()
  #16 0x000055555651f709 in tokio::runtime::blocking::pool::Inner::run ()
  #17 0x00005555564fb597 in std::sys::backtrace::__rust_begin_short_backtrace ()
  #18 0x00005555565028c2 in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
  #19 0x00005555567caf8f in std::sys::pal::unix::thread::Thread::new::thread_start ()
  #20 0x00007fffef09a56a in start_thread () at /usr/lib/x86_64-linux-gnu/libc.so.6
  #21 0x00007fffef11de54 in clone () at /usr/lib/x86_64-linux-gnu/libc.so.6

  Thread 1 (Thread 0x7fffe8f134c0 (LWP 45) "LRCGET"):
  #0  0x00007fffeef0e514 in FcStrCmpIgnoreCase () at /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
  #1  0x00007fffeef1cd87 in FcValueEqual () at /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
  #2  0x00007fffeef0d8dc in FcFontSetList () at /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
  #3  0x00007fffecffd0d7 in ensure_families () at /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
  #4  0x00007fffecffd551 in pango_fc_font_map_get_family () at /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
  #5  0x00007fffecffd89a in pango_fc_font_map_get_face () at /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
  #6  0x00007fffecfff2e4 in pango_fc_fontset_get_font_at () at /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
  #7  0x00007fffecfff69d in pango_fc_fontset_foreach () at /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
  #8  0x00007fffee470d40 in pango_context_get_metrics () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
  #9  0x00007ffff1d8e1cb in gtk_label_measure () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #10 0x00007ffff1cc1bc6 in gtk_css_custom_gadget_get_preferred_size () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #11 0x00007ffff1cc697c in gtk_css_gadget_get_preferred_size () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #12 0x00007ffff1d892cb in gtk_label_get_preferred_height_and_baseline_for_width () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #13 0x00007ffff1e4b546 in gtk_widget_query_size_for_orientation () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #14 0x00007ffff1e4bc3c in gtk_widget_get_preferred_height_and_baseline_for_width () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #15 0x00007ffff1c69503 in gtk_box_get_content_size () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #16 0x00007ffff1cc1bc6 in gtk_css_custom_gadget_get_preferred_size () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #17 0x00007ffff1cc697c in gtk_css_gadget_get_preferred_size () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #18 0x00007ffff1c6877b in gtk_box_get_preferred_height_and_baseline_for_width () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #19 0x00007ffff1e4b546 in gtk_widget_query_size_for_orientation () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #20 0x00007ffff1e4ad29 in gtk_widget_get_preferred_height () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #21 0x00007ffff1d62a68 in gtk_header_bar_get_content_size () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #22 0x00007ffff1cc1bc6 in gtk_css_custom_gadget_get_preferred_size () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #23 0x00007ffff1cc697c in gtk_css_gadget_get_preferred_size () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #24 0x00007ffff1d61d85 in gtk_header_bar_get_preferred_height () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #25 0x00007ffff1e4b42c in gtk_widget_query_size_for_orientation () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #26 0x00007ffff1e4bc3c in gtk_widget_get_preferred_height_and_baseline_for_width () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #27 0x00007ffff1e4b546 in gtk_widget_query_size_for_orientation () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #28 0x00007ffff1e4ad29 in gtk_widget_get_preferred_height () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #29 0x00007ffff1f1ed45 in gtk_window_update_csd_size () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #30 0x00007ffff1f274a4 in gtk_window_get_size () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #31 0x00007ffff1f2773f in gtk_window_get_position () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #32 0x00005555564b4f3e in tao::platform_impl::platform::window::Window::setup_signals ()
  #33 0x0000555555cc3c21 in tao::platform_impl::platform::window::Window::new ()
  #34 0x0000555555e13639 in tauri_runtime_wry::create_window ()
  #35 0x0000555555e2d811 in core::ops::function::FnOnce::call_once{{vtable.shim}} ()
  #36 0x0000555555e1e24d in tauri_runtime_wry::handle_user_message ()
  #37 0x0000555555e1d655 in tauri_runtime_wry::send_user_message ()
  #38 0x0000555555e1b147 in tauri_runtime_wry::Context<T>::create_window ()
  #39 0x0000555555e5399f in tauri::window::WindowBuilder<R,M>::build_internal ()
  #40 0x0000555555e52bd3 in tauri::window::WindowBuilder<R,M>::with_webview ()
  #41 0x0000555555dec49c in tauri::app::setup ()
  #42 0x0000555555fc0083 in tauri::app::App<R>::run::{{closure}} ()
  #43 0x0000555555e1b5f3 in tauri_runtime_wry::handle_event_loop ()
  #44 0x0000555555fd17d3 in <tauri_runtime_wry::Wry<T> as tauri_runtime::Runtime<T>>::run::{{closure}} ()
  #45 0x0000555555fa0263 in tao::platform_impl::platform::event_loop::EventLoop<T>::run_return ()
  #46 0x0000555555e2b22c in tao::platform_impl::platform::event_loop::EventLoop<T>::run ()
  #47 0x0000555555e6c19c in <tauri_runtime_wry::Wry<T> as tauri_runtime::Runtime<T>>::run ()
  #48 0x0000555555e0bb4a in lrcget::main::{{closure}} ()
  #49 0x0000555555df0698 in tokio::runtime::context::runtime::enter_runtime ()
  #50 0x0000555555dac439 in lrcget::main ()
  #51 0x0000555556039c23 in std::sys::backtrace::__rust_begin_short_backtrace ()
  #52 0x00005555560387e9 in std::rt::lang_start::{{closure}} ()
  #53 0x00005555567b84d0 in std::rt::lang_start_internal ()
  #54 0x0000555555dac5a5 in main ()
2025-09-26 17:13:50 -03:00
thang.tranxuan
c96a64ef44 Bump version 1.0.0 2025-09-25 10:21:57 +07:00
thang.tranxuan
87b1092980 Fix publishing lyrics in My LRCLIB tab 2025-09-23 10:30:51 +07:00
thang.tranxuan
76f84cd0a4 Add copy button to various places, fix some styles 2025-09-18 10:18:37 +07:00
thang.tranxuan
e04a252fe1 Add main menu dropdown with convenient options 2025-09-17 15:22:36 +07:00
thang.tranxuan
86135e310e Change rewind/fast forward line shortcuts 2025-09-17 14:41:39 +07:00
tranxuanthang
8e7685dc52 Merge pull request #244 from guihkx/linux-add-desktop-metadata-files
Linux: Add desktop file and AppStream metadata
2025-09-17 13:46:48 +07:00
thang.tranxuan
6fb3d24c1e Filter tracks feature 2025-09-17 11:28:49 +07:00
guihkx
2d16de12f7 linux: add desktop file
This also installs a desktop file in the DEB and RPM packages.

It has hardcoded values on purpose, to make it easier to use it with
packaging formats not supported by Tauri (such as Flatpak).

This desktop file is not installed in the AppImage package, because
Tauri's AppImageConfig doesn't support the "desktopTemplate" option,
like DEB and RPM packages do.

Docs: https://specifications.freedesktop.org/desktop-entry-spec/latest/recognized-keys.html
2025-08-31 00:10:40 -03:00
guihkx
dbfcf5248b linux: add AppStream metadata
This also installs an AppStream metadata file in the AppImage, DEB and
RPM packages.

Docs: https://freedesktop.org/software/appstream/docs/chap-Metadata.html
2025-08-31 00:09:26 -03:00
Fred Fettinger
3feb35e2d4 comment typo 2025-08-19 14:59:32 -05:00
Fred Fettinger
0267e89d2c update kira to 0.10.8
Unfortunately, Kira 0.10.0 and later no longer have an easy way to
convert from amplitude on the interval `[0, 1]` to `Decibels`.
To maintain existing functionality, create one by inverting the formula
in Kira's `Decibels::as_amplitude()`. Add a test to verify its accuracy.

See section "Simplified volume and playback rate types"
in the Kira 0.10.0 release notes:
https://github.com/tesselode/kira/releases/tag/v0.10.0
2025-08-19 14:57:34 -05:00
Fred Fettinger
376b53527d Seek: round progressPercent to thousandths
The `progress` currently updates every `40ms` which re-computes
`progressPercent`. Vue needs to do a layout each time in order to update
the `ViewSliderDot` inside `Seek`'s `VueSlider`.

To reduce the CPU usage of these updates and make the interface more
responsive, round `progressPercent` to the nearest `0.001`. This will
limit layout updates to about `1000` over the duration of a track. Since
this is approximately the same as the default window width, there isn't
much impact to the smoothness of the seek slider while playing a track.
If the user resizes the window to be wider, the slider will scroll slightly
less smoothly than before. However, this does not reduce the precision if
the user seeks manually.
2025-08-19 14:17:38 -05:00
Fred Fettinger
aea95266ce TrackItem: hide Equalizer when editing lyrics
The style animations used by the equalizer are surprisingly expensive.
It's a nice visual feedback to show which track is playing, but it
impacts the user experience when editing lyrics. Since the `EditLyrics`
modal covers most of the track list anyways, hide the `Equalizer` when
the modal is open to avoid CPU impact from the "Styles Invalidated".
2025-08-19 14:11:34 -05:00
Fred Fettinger
31900aa02e EditLyrics: reduce CPU usage
Editing lyrics caused CPU usage to jump to 100%. In devtools I saw many
"Styles Invalidated" events. By removing portions of the `EditLyrics`
component I found the cause was the `AsyncCodemirror` `style` property.
This issue occurs even if I set `:style="{}"`.

Since the parent `div` already has a style property, I moved the `fontSize`
there and combined with the existing `height` field. Unfortunately I don't
yet understand why this has such a significant performance impact.
2025-08-19 13:19:52 -05:00
tranxuanthang
25f1788fdd Merge pull request #226 from UnknownExplorer13/main
Styling: Add gap between pills in "Search from library" window
2025-07-01 09:06:19 +07:00
Kye Fenton
ef54b3ee57 Styling: Add gap between pills in "Search from library" window 2025-07-01 05:40:42 +09:30
tranxuanthang
b7906a09e7 Merge pull request #215 from UnknownExplorer13/main
Feature: Line count tag when searching lyrics (with toggle)
2025-06-30 15:29:21 +07:00
Kye Fenton
a50282be31 Fix tag styling 2025-06-01 13:10:54 +09:30
Kye Fenton
60e6b27e4a Quick fix 2025-05-30 08:35:52 +09:30
Kye Fenton
9fc5272644 Feature: Line count tag when searching lyrics (with toggle) 2025-05-30 08:15:56 +09:30
tranxuanthang
d95c22eb2b Merge pull request #186 from takouhai/patch-1
fix: spelling of word that prints out to console
2025-02-25 14:50:15 +07:00
daniel (taco)
b9170fa13b fix: spelling of word that prints out to console 2025-01-30 17:51:48 -05:00
thang.tranxuan
10ad577067 Bump version, minor fix for macOS build 0.9.3 2025-01-24 15:15:18 +07:00