Archive of https://git.etawen.dev/earthonion/jellyfin-tv-mode — Jellyfin plugin that forces TV/gamepad layout with smooth scrolling on all pages including sign-in
- C# 62.3%
- HTML 37.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| Pages | ||
| .gitignore | ||
| jellyfin-tv-mode.csproj | ||
| Plugin.cs | ||
| PluginConfiguration.cs | ||
| README.md | ||
| TvModeController.cs | ||
| TvModeEntryPoint.cs | ||
| TvModeServiceRegistrator.cs | ||
Jellyfin TV Mode
Jellyfin plugin that forces TV/gamepad layout with smooth scrolling on all pages, including the sign-in screen.
Features
- Forces TV layout before the web client initializes (works on login page)
- Smooth scrolling
- URL param override:
?layout=tv,?layout=desktop,?layout=mobile - Config page in Admin Dashboard → Plugins → TV Mode
Install
- Build or download
Jellyfin.Plugin.TvMode.dll - Create
<jellyfin-data>/plugins/TvMode_1.0.0.0/ - Drop in the DLL and
meta.json - Make
index.htmlwritable:chown jellyfin /usr/share/jellyfin/web/index.html - Restart Jellyfin
Build
dotnet build
Requires .NET 9 SDK. References Jellyfin 10.11 assemblies from /usr/lib/jellyfin/bin/.
How it works
On startup the plugin injects a <script> tag into the web client's index.html that loads /TvMode/ClientScript. That endpoint returns JavaScript that sets localStorage.layout before the Jellyfin bundle reads it — so TV mode applies on every page load, including pre-auth.
On shutdown the injected tag is removed.