Nix configurations for my homelab
1From 4b80006c76d0f0bff6b155570d1a9562c57ef565 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Natal=C3=AD=20Paura?=
3 <30585029+natilou@users.noreply.github.com>
4Date: Sun, 4 Jan 2026 11:57:36 -0300
5Subject: [PATCH 4/5] blur title and description in episode details and More
6 from Season section
7
8---
9 src/controllers/itemDetails/index.js | 27 ++++++++++++++++++---------
10 src/styles/librarybrowser.scss | 9 +++++++++
11 2 files changed, 27 insertions(+), 9 deletions(-)
12
13diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js
14index 4e80f00b8f..986958685b 100644
15--- a/src/controllers/itemDetails/index.js
16+++ b/src/controllers/itemDetails/index.js
17@@ -477,7 +477,11 @@ function renderName(item, container, context) {
18
19 if (html && !parentNameLast) {
20 if (tvSeasonHtml) {
21- html += '<h3 class="itemName infoText subtitle focuscontainer-x"><bdi>' + tvSeasonHtml + ' - ' + name + '</bdi></h3>';
22+ html += '<h3 class="itemName infoText subtitle focuscontainer-x';
23+ if (!item.UserData.Played && userSettings.enableBlurUnplayedTitle()) {
24+ html += ' listItemBodyText-blurred';
25+ }
26+ html += '"><bdi>' + tvSeasonHtml + ' - ' + name + '</bdi></h3>';
27 } else {
28 html += '<h3 class="itemName infoText subtitle"><bdi>' + name + '</bdi></h3>';
29 }
30@@ -921,6 +925,10 @@ function renderOverview(page, item) {
31 for (const anchor of overviewElemnt.querySelectorAll('a')) {
32 anchor.setAttribute('target', '_blank');
33 }
34+
35+ if (item.Type === 'Episode' && !item.UserData.Played && userSettings.enableBlurUnplayedDescription()) {
36+ overviewElemnt.classList.add('listItemBodyText-blurred');
37+ }
38 }
39 } else {
40 for (const overviewElemnt of overviewElements) {
41@@ -1179,7 +1187,8 @@ function renderMoreFromSeason(view, item, apiClient) {
42 overlayText: false,
43 centerText: true,
44 includeParentInfoInTitle: false,
45- allowBottomPadding: false
46+ allowBottomPadding: false,
47+ enableBlurUnplayedTitle: userSettings.enableBlurUnplayedTitle()
48 });
49 const card = itemsContainer.querySelector('.card[data-id="' + item.Id + '"]');
50
51@@ -1416,9 +1425,7 @@ function renderChildren(page, item) {
52 action: 'playallfromhere',
53 image: false,
54 artist: showArtist,
55- containerAlbumArtists: item.AlbumArtists,
56- enableBlurUnplayedTitle: userSettings.enableBlurUnplayedTitle(),
57- enableBlurUnplayedDescription: userSettings.enableBlurUnplayedDescription()
58+ containerAlbumArtists: item.AlbumArtists
59 });
60 isList = true;
61 } else if (item.Type == 'Series') {
62@@ -1562,6 +1569,8 @@ function renderProgramsForChannel(page, result) {
63 let html = '';
64 let currentItems = [];
65 let currentStartDate = null;
66+ const enableBlurUnplayedTitle = userSettings.enableBlurUnplayedTitle();
67+ const enableBlurUnplayedDescription = userSettings.enableBlurUnplayedDescription();
68
69 for (let i = 0, length = result.Items.length; i < length; i++) {
70 const item = result.Items[i];
71@@ -1583,8 +1592,8 @@ function renderProgramsForChannel(page, result) {
72 showProgramTime: true,
73 mediaInfo: false,
74 parentTitleWithTitle: true,
75- enableBlurUnplayedTitle: userSettings.enableBlurUnplayedTitle(),
76- enableBlurUnplayedDescription: userSettings.enableBlurUnplayedDescription()
77+ enableBlurUnplayedTitle: enableBlurUnplayedTitle,
78+ enableBlurUnplayedDescription: enableBlurUnplayedDescription
79 }) + '</div></div>';
80 }
81
82@@ -1610,8 +1619,8 @@ function renderProgramsForChannel(page, result) {
83 showProgramTime: true,
84 mediaInfo: false,
85 parentTitleWithTitle: true,
86- enableBlurUnplayedTitle: userSettings.enableBlurUnplayedTitle(),
87- enableBlurUnplayedDescription: userSettings.enableBlurUnplayedDescription()
88+ enableBlurUnplayedTitle: enableBlurUnplayedTitle,
89+ enableBlurUnplayedDescription: enableBlurUnplayedDescription
90 }) + '</div></div>';
91 }
92
93diff --git a/src/styles/librarybrowser.scss b/src/styles/librarybrowser.scss
94index c43db18321..9936d2d400 100644
95--- a/src/styles/librarybrowser.scss
96+++ b/src/styles/librarybrowser.scss
97@@ -1537,3 +1537,12 @@ div:not(.sectionTitleContainer-cards) > .sectionTitle-cards {
98 padding-left: 0.8em;
99 padding-right: 0.8em;
100 }
101+
102+.listItemBodyText-blurred{
103+ filter: blur(5px);
104+ transition: filter 0.3s ease;
105+}
106+
107+.listItemBodyText-blurred:hover{
108+ filter: blur(0);
109+}
110--
1112.53.0
112