Add Home Screen Category filters and fix bugs related to Home Screen not rendering when navigating back to it

This commit is contained in:
HighImKevin
2026-09-21 03:01:43 -04:00
parent ea0483ff92
commit eda0a94420
12 changed files with 1069 additions and 152 deletions
+5 -1
View File
@@ -5,6 +5,7 @@ interface HomeScreenSection {
caption?: string;
enabled: boolean;
order: number;
category?: string; // Stable category id (custom sections); runtime may force discovery/pinned
// Display Options
cardFormat?: "Poster" | "Thumb" | "Backdrop" | "Random";
@@ -31,6 +32,7 @@ interface HomeScreenSection {
cardTitleFontSize?: "small" | "normal" | "large";
userConfigurable?: boolean; // Whether users can toggle/reorder this section
useGaplessCards?: boolean; // When true, remove gaps between cards (row or grid)
useParentCard?: boolean; // When true, use the parent item will be rendered as the card image and link
// Loads items from an external URL and loads matches from that list from your Jellyfin library
// Currently supports: mdblist.com only
@@ -145,7 +147,7 @@ interface SpotlightConfig {
// Used for the customPrefs.kefinTweaks.homeScreen property
// All values are arrays of semi-colon separated strings
interface KefinHomeScreen {
sections: Array<string>; // id;enabled;order;ttl;cardFormat;animationEnabled;hideName;hideCardTitles;cardTitlePosition;borderStyle;spotlightLayout;spotlightSize;spotlightTileCount;itemsLayout(row|grid; legacy true→grid);cardTitleCapitalization;cardTitleFontFamily;cardTitleFontSize;borderColor;cardTitleColor;useGaplessCards
sections: Array<string>; // id;enabled;order;ttl;cardFormat;animationEnabled;hideName;hideCardTitles;cardTitlePosition;borderStyle;spotlightLayout;spotlightSize;spotlightTileCount;itemsLayout(row|grid; legacy true→grid);cardTitleCapitalization;cardTitleFontFamily;cardTitleFontSize;borderColor;cardTitleColor;useGaplessCards;renderMode(Normal|Spotlight|Random)
pinnedLists: Array<string>; // name;id1;id2;id3;...
pinnedParents: Array<string>; // name;id;type
}
@@ -191,4 +193,6 @@ interface KefinHomeScreenSectionUserConfig {
cardTitleCapitalization?: string;
cardTitleFontFamily?: string;
cardTitleFontSize?: string;
/** User override of the section's render mode. */
renderMode?: "Normal" | "Spotlight" | "Random";
}