Andrew Rabert
a97fb04ce8
AppImage: Fix xdg_positioner.set_size(0,0) crash ubuntu 24.04
2026-02-22 13:58:54 -05:00
Andrew Rabert
6ea2a4395a
Fix AppImage crashes on Ubuntu and other non-Arch distros
...
Three fixes for cross-distro compatibility:
- Keep libvdpau.so in the bundle. It's a dispatcher library, not a
GPU driver. The backend drivers in /usr/lib/vdpau/ are still excluded.
Without the dispatcher, the AppImage fails to start on distros where
libvdpau isn't installed by default (e.g. Ubuntu 24.04).
- Replace the QtWebEngineProcess bash wrapper with a statically-linked
C binary. The bash wrapper was crashing on Ubuntu because the host's
/bin/bash was loaded by the host's dynamic linker, which then picked
up the bundled Arch glibc via LD_LIBRARY_PATH — an ABI mismatch that
segfaults. A static binary has no shared library dependencies, so
LD_LIBRARY_PATH is irrelevant to it.
- Improve APPDIR derivation in the wrapper. Instead of relying solely
on the APPDIR environment variable (which may not be inherited by
subprocesses), derive it from the binary's own path via
/proc/self/exe.
2026-02-21 17:31:28 -05:00
Andrew Rabert
9469904309
Add development build download links to README
2026-02-21 00:28:43 -05:00
Andrew Rabert
93ff9f1deb
Build macOS, Windows, and AppImage on pushes to master
2026-02-21 00:14:53 -05:00
Andrew Rabert
da88a9a9bf
Add AppImage build to GitHub Actions
...
New build-appimage.yml workflow that builds the AppImage in Docker and
uploads it as an artifact. Wired into the main build.yml orchestrator
alongside the existing platform builds.
2026-02-21 00:02:07 -05:00
Andrew Rabert
bcd2326971
Add AppImage build support
...
Docker-based build on Arch Linux that ships the full library stack
(including glibc) for cross-distro compatibility. Uses the bundled
ld-linux as the interpreter to bypass host glibc version requirements.
GPU/graphics libraries are excluded from the bundle and loaded from
the host system to match the kernel GPU driver.
2026-02-21 00:00:13 -05:00
Andrew Rabert
70595095ca
Remove accidental symlink
2025-12-30 18:52:14 -05:00
Andrew Rabert
cd8698c0e2
Fix warnings; remove dead code
2025-12-30 18:39:08 -05:00
Andrew Rabert
b3885236f1
Fix macos cursor hiding outside of Jellyfin Desktop
2025-12-30 18:10:28 -05:00
Andrew Rabert
f3d2382530
Fix severe memory leak
...
6.10.* has a severe memory leak.
https://qt-project.atlassian.net/browse/QTBUG-141377
6.9.3 works well enough.
resolves https://github.com/jellyfin/jellyfin-desktop/issues/1091
2025-12-29 22:08:50 -05:00
Andrew Rabert
d3858e2c21
Set player artwork on macos
2025-12-27 12:00:52 -05:00
Andrew Rabert
8a0091cc24
Remove dead code
2025-12-27 11:05:18 -05:00
Andrew Rabert
91881c57b3
Delete cache and log dirs when deleting profile
2025-12-27 01:50:42 -05:00
Andrew Rabert
c8cd28e6ca
Refactor ProfileManager to encapsulate profile IDs
...
- Make Profile::id private, expose only through ProfileManager
- Add std::optional<Profile> returns for profileByName/defaultProfile
- Add profiles(), createProfile(), deleteProfile(), setDefaultProfile()
- Update setActiveProfile() to take Profile instead of id string
- Move profile operations from main.cpp lambdas into ProfileManager
- Remove profile-aware methods from Paths (dataDir, cacheDir, logDir)
- All callers now use ProfileManager::activeProfile().dataDir() etc.
2025-12-27 01:45:52 -05:00
Andrew Rabert
63967910d6
Fix mac builds
2025-12-27 01:38:44 -05:00
Andrew Rabert
c563de40ac
Add disk cache for MRPIS artwork
2025-12-27 00:25:57 -05:00
Andrew Rabert
0cc41a0d0a
Add cache paths
2025-12-27 00:02:21 -05:00
Andrew Rabert
8c51614a4a
Reorganize dev docs/scripts
2025-12-26 23:57:17 -05:00
Andrew Rabert
df852c99cb
Update artifact names
2025-12-26 23:56:27 -05:00
Andrew Rabert
c85aec44c6
Disable pipeline cache in Windows portable mode
2025-12-26 19:32:12 -05:00
Andrew Rabert
0ffccae6e3
Override LOCALAPPDATA for Windows portable mode cache
...
Move detectOpenGLEarly() after portable mode detection so Qt's
pipeline cache uses the portable cache directory.
2025-12-26 19:09:15 -05:00
Andrew Rabert
47d055a929
Use separate cache and data paths for WebEngine profile
2025-12-26 18:39:25 -05:00
Andrew Rabert
0650372701
Use disk HTTP cache instead of memory cache
2025-12-26 18:30:54 -05:00
Andrew Rabert
a8d0f47dc5
Use DATA_NAME for Qt applicationName on Linux
...
Consolidates APP_NAME into DATA_NAME and removes redundant MainName().
Ensures Qt's QStandardPaths (cache, config dirs) match our Paths code,
fixing duplicate cache directories on Linux.
2025-12-26 17:45:32 -05:00
Andrew Rabert
7ebf46e96c
Use qt_add_qml_module for QML AOT compilation
...
Eliminates runtime qmlcache by compiling webview.qml ahead of time.
Fixes portable mode cache leak where qmlcache was written to system dir.
2025-12-26 16:49:20 -05:00
Andrew Rabert
6c26132332
Set minimum Windows to Windows 10 (1903)
...
1903 introduced icu.dll which Qt requires.
2025-12-26 16:01:24 -05:00
Andrew Rabert
ec3e4d101d
Fix portable mode
2025-12-26 15:43:06 -05:00
Andrew Rabert
c1c80a5fc4
Fix mixed path separators in Inno Setup script
2025-12-26 05:50:30 -05:00
Andrew Rabert
6b11ab921c
Add LOCALAPPDATA path for Inno Setup discovery
2025-12-26 05:28:24 -05:00
Andrew Rabert
a730b75189
Fix setup-windows.bat and portable ZIP build
2025-12-26 05:07:04 -05:00
Andrew Rabert
4315bc5ec5
Fix AVX2 constant redefinition, limit to x64
2025-12-26 04:57:50 -05:00
Andrew Rabert
ee098dfb5a
CI: Bundle VC runtime and build portable ZIP
2025-12-26 04:54:39 -05:00
Andrew Rabert
960f40a367
Move libmpv AVX2 fallback detection to runtime
...
Use delay-load for libmpv-2.dll so app can check AVX2 support at
startup and swap to fallback DLL before mpv loads. Both installer
and portable now ship both DLLs, app handles selection.
2025-12-26 04:25:43 -05:00
Andrew Rabert
3e840b3c8c
Add portable mode for Windows
...
Detect portable marker file (portable or portable.txt) next to exe
and store data/cache in app directory instead of AppData.
ZIP package includes marker file for out-of-box portable use.
2025-12-26 03:51:15 -05:00
Andrew Rabert
747275054e
Bundle VC runtime DLLs for Windows installer
...
- Support user-level install (no admin required)
- Bundle MSVC runtime DLLs from deps/vcruntime
- Offer system-wide VCRedist install when running as admin
- Add portable ZIP artifact (windows_zip target)
- Add combined windows_all target for installer + ZIP
2025-12-26 03:49:48 -05:00
Andrew Rabert
cc0cb7e4bc
Remove unnecessary null pointer checks before delete
2025-12-25 22:00:54 -05:00
Andrew Rabert
e84dec77ca
Support non-AVX CPUs with x86_64 libmpv fallback
...
Bundle both x86_64-v3 (AVX) and x86_64 (non-AVX) libmpv versions.
Installer detects AVX2 at install time and keeps the appropriate DLL.
2025-12-25 13:10:52 -05:00
Andrew Rabert
f8e65dc138
Change to Inno Setup for Windows
...
WiX 3 is EOL and is one of the blockers for arm64 builds.
2025-12-25 02:08:28 -05:00
Andrew Rabert
eba84d1e13
Update flathub metadata
2025-12-24 00:30:54 -05:00
Andrew Rabert
0a4598ac24
Update README
2025-12-23 19:31:34 -05:00
Andrew Rabert
929bee74dc
Remove redundant ninja
2025-12-23 19:16:01 -05:00
Andrew Rabert
5bba0eaa22
Fix Windows CI
2025-12-23 19:15:49 -05:00
Andrew Rabert
b8c4e83e17
Fix mac ci build; use aqtinstall
2025-12-23 19:15:30 -05:00
Andrew Rabert
9696de712c
Center when no saved geometry
2025-12-23 19:13:26 -05:00
Andrew Rabert
3c7cbd10ca
Update Windows metadata
2025-12-23 01:03:39 -05:00
Andrew Rabert
d0d5112464
Drop win32, win64-legacy
...
- win32: Qt 6 is 64-bit only
- win64-legacy: a separate build is unnecessary. could create separate
artifact from the same jellyfin-desktop compilation if desired
- arm64: added commented out, but requires switching to wix4
2025-12-23 01:02:44 -05:00
Andrew Rabert
6cf115ae2d
Cleanup build-windows workflow
2025-12-23 01:02:44 -05:00
Andrew Rabert
94fa8c62dc
Fix build-macos workflow
2025-12-23 01:02:44 -05:00
Andrew Rabert
5f337fd051
Update metadata
2025-12-23 00:53:53 -05:00
Andrew Rabert
4ef2c11169
Optimize images
2025-12-22 23:14:26 -05:00
Andrew Rabert
844b203525
Update screenshots
2025-12-22 23:11:33 -05:00
Andrew Rabert
9890696351
Split workflow builds by platform (fix)
2025-12-22 00:01:58 -05:00
Andrew Rabert
ff1e9f5fae
Split workflow builds by platform
2025-12-21 23:57:24 -05:00
Andrew Rabert
fecefad83e
Update windows libmpv to 20251214; ninja to 1.13.2
2025-12-21 23:25:45 -05:00
Andrew Rabert
5140e6be2e
Fix windows build pipelines
2025-12-21 23:04:16 -05:00
Andrew Rabert
9cc65361b1
libmpv: autodetect gpu-api except when windows
2025-12-21 22:14:12 -05:00
Andrew Rabert
468e59eee9
Fix build-mac
2025-12-20 19:54:01 -05:00
Andrew Rabert
9ab4bf8ec2
Add workflow_dispatch trigger for manual builds of specific targets
2025-12-20 15:54:41 -05:00
Andrew Rabert
726b067df3
Change launcher/titlebar name to "Jellyfin Desktop"
...
For clarity
2025-12-17 22:46:09 -05:00
Andrew Rabert
c7078046a4
Fix stale resources not building (again)
...
Always execute rcc and compare the hash of the resulting file to the
existing one. If it's different, write it.
2025-12-15 22:43:51 -05:00
Andrew Rabert
a5adbe36ac
Suppress error log when LIRC socket not running
2025-12-15 18:45:06 -05:00
Andrew Rabert
de36b677af
Remove settings migration
...
v2.0.0 configuration is separate from older versions
2025-12-15 18:41:40 -05:00
Andrew Rabert
334c382bc6
Remove warning when config empty/not exist
2025-12-15 18:40:05 -05:00
Andrew Rabert
f1579d322d
Cleanup build scripts
...
- remove unused scripts
- convert python scripts to cmake
- move WindowsSign.cmd to bundle/win
2025-12-15 18:19:32 -05:00
Andrew Rabert
3122130450
Update macos build instructions
2025-12-15 13:08:35 -05:00
Andrew Rabert
45459ec419
Fix oversaturated colors on macos
2025-12-15 12:27:48 -05:00
Andrew Rabert
7f04b8dd64
Fix cert detection on macos
2025-12-15 12:11:19 -05:00
Andrew Rabert
fd4de88c9d
Update flatpak developer
2025-12-14 19:29:14 -05:00
Andrew Rabert
6c0c42f97e
Update package changelogs for v2.0.0
2025-12-14 15:12:00 -05:00
Andrew Rabert
eb9779f5e3
Use static mpvqt for macos and windows builds
2025-12-14 15:04:56 -05:00
Andrew Rabert
955c336e18
Fix tests (GitHub)
2025-12-14 15:03:56 -05:00
Andrew Rabert
f1896bcce7
Fix option to ignore certificate errors / add --ignore-certificate-errors flag
2025-12-14 14:39:08 -05:00
Andrew Rabert
2c7be6b164
Set version to 2.0.0-dev
2025-12-14 06:19:37 -05:00
Andrew Rabert
1634d3d263
Release jellyfin-desktop v2.0.0
2025-12-14 06:13:03 -05:00
Andrew Rabert
a694d42cee
Use runtimedir for sockets
...
Use tempdir as fallback
2025-12-14 06:00:14 -05:00
Andrew Rabert
7f19a83c9b
Fix socket cleanup
2025-12-14 05:56:43 -05:00
Andrew Rabert
d1a8a16fd7
Change socket names
2025-12-14 05:56:32 -05:00
Andrew Rabert
0df5b28b6c
Add initial multi-profile support
...
Assign a local, unique identifier to the default profile and store in
<DATA_DIR>/profiles/<ID>. Profiles are managed via CLI flags only. GUI
will be added to switch _eventually_.
Doing this now as the next stable release will have new configuration
paths without any for of migration.
2025-12-14 05:37:48 -05:00
Andrew Rabert
bea2484416
Fix crash when canceling server connection
2025-12-14 05:26:32 -05:00
Andrew Rabert
4f30737b98
Disable update checks by default
2025-12-14 05:26:32 -05:00
Andrew Rabert
520ad2bd63
Change client identification / user-agent
2025-12-14 05:26:32 -05:00
Andrew Rabert
b3c85d959c
Use VERSION file for versioning
2025-12-14 05:26:32 -05:00
Andrew Rabert
8281ee713d
Rename to Jellyfin Desktop
2025-12-14 05:26:31 -05:00
Andrew Rabert
020505abb9
Fix window geometry, maximize, and fullscreen persistence
2025-12-13 17:01:55 -05:00
Andrew Rabert
3ef86082bf
Include command details in host command slot error
2025-12-06 13:15:35 -05:00
Andrew Rabert
e4df26c880
Fix ac3 audio filter add/remove logic
2025-12-06 13:15:35 -05:00
Andrew Rabert
94c5917861
Add null checks for SettingsSection in connect calls
...
getSection() can return nullptr if called before sections are
initialized, causing Qt warnings about invalid nullptr parameter.
2025-12-06 13:01:09 -05:00
Andrew Rabert
8d9b59816e
Silence warning for mapping files without idmatcher
...
Missing idmatcher is valid for intentionally disabled mapping files
like dualshock4-xbox-emulate.json which users can manually enable.
2025-12-06 13:00:05 -05:00
Andrew Rabert
02908968b0
Fix deprecated mpv video-aspect-override value
...
Use "no" instead of "-1" which is deprecated in recent mpv versions.
2025-12-06 12:59:16 -05:00
Andrew Rabert
c54c2249b7
Fix Qt6 QLocalSocket signal deprecation
...
Use errorOccurred signal instead of error() which was removed in Qt6.
2025-12-06 12:58:49 -05:00
Andrew Rabert
cc103e35c1
Bump minimum macos version to 10.15
...
Fixes compilation
2025-12-04 18:50:30 -05:00
Andrew Rabert
107ab1affc
Revert "Remove non-dbus X11 power management"
...
This reverts commit 7b067a751b .
2025-11-30 22:11:53 -05:00
Andrew Rabert
7b067a751b
Remove non-dbus X11 power management
...
Spawning a new process every 15 seconds is an inefficient hack.
2025-11-30 21:21:10 -05:00
Andrew Rabert
efc973aca6
Use PlayerComponent signals for screensaver state
2025-11-30 20:50:44 -05:00
Andrew Rabert
8823d11b38
Fix screensaver inhibition on Linux
2025-11-30 20:34:50 -05:00
Andrew Rabert
83399a5c1e
Change MPRIS artUrl to inline base64 image
...
Particularly useful for Flatpak where filesystem paths may not be
consistent between the host and sandbox.
2025-11-30 16:34:37 -05:00
Andrew Rabert
df79a7fb30
Add option to disable zoom (keys/wheel/pinch)
2025-11-30 15:18:19 -05:00
Andrew Rabert
641f6ca079
Fix remote debugging
2025-11-29 21:31:58 -05:00
Andrew Rabert
0d18af84c6
Fix: audio mute/mute not persisting between tracks
2025-11-29 16:27:26 -05:00
Andrew Rabert
b3a43cbdf4
Fix: match jellyfin-web audio fade out
2025-11-29 16:26:54 -05:00