-
Notifications
You must be signed in to change notification settings - Fork 0
Sidebar and Details Pane
The sidebar (also called the details pane) is Kartend's persistent metadata surface — it shows the selected item's artwork, file info, custom fields, video preview, and the active collection's summary. You can dock it on any of the four edges, set it to Overlay (float) or Expand (push the grid), restyle it per-collection, and toggle its tabs.
Where to find this —
F9toggle, View → Details Pane menu, Settings Dialog → Sidebar tab. Persisted per-collection (visibility, mode, position, styling, font).
-
F9toggles the sidebar. The state is persisted assidebarVisibleper-collection, so each collection remembers whether you had it open. - View → Show Details Pane in the menu mirrors the toggle.
- Right-click any item → Properties also toggles.
- Gamepad Y button (default, rebindable) toggles too.
The sidebar is forced hidden in Cover Flow view
so the carousel takes the full viewport. When you switch away from
Cover Flow, your sidebarVisible preference returns. (The forced-hide
flag is in-memory only — it doesn't overwrite the saved preference.)
| Mode | Behavior | INI value |
|---|---|---|
| Overlay | Floats over the grid. Grid layout doesn't change. The sidebar can have its own width and a translucent background. | sidebarMode=overlay |
| Expand | Docks permanently. The grid shrinks to make room. | sidebarMode=expand |
Pick Overlay when you want the sidebar visible occasionally without constantly recalculating tile sizes. Pick Expand for a static, docked layout.
In Expand mode the available grid area changes when the sidebar is
hidden vs. visible — toggling F9 would otherwise resize tiles awkwardly.
Kartend supports alternate gridWidth values that take effect when
the sidebar is hidden:
gridWidth=8 ; columns when sidebar is visible
gridWidthSidebarHidden=10 ; columns when sidebar is hidden
horizontalGridHeight=4
horizontalGridHeightSidebarHidden=5
gridHeightSidebarHidden=6 ; for top/bottom dock with ExpandSet both if you toggle the sidebar often — otherwise Kartend falls
back to a single shared gridWidth.
The sidebar can dock on any of the four edges:
| Position | INI value | Driven by |
|---|---|---|
| Right (default) | right |
Width |
| Left | left |
Width |
| Top | top |
Height |
| Bottom | bottom |
Height |
Switch via View → Details Pane Orientation ▶ or Settings → Sidebar tab → Sidebar Position.
Top / bottom positions use sidebarHeight instead of sidebarWidth,
and the alternate-grid-when-hidden key becomes
gridHeightSidebarHidden to handle items-per-column re-layout.
Drag the sidebar's edge to resize. Lock dragging with sidebarWidthLocked=true
(controls both width and height regardless of position).
| Setting | INI key | Effect |
|---|---|---|
| Sidebar width | sidebarWidth |
Pixels (right/left). |
| Sidebar height | sidebarHeight |
Pixels (top/bottom). |
| Lock resize | sidebarWidthLocked |
Disable drag-resizing. |
The sidebar has up to three tabs:
| Tab | Shown when | Contents |
|---|---|---|
| Item (default) | An item is selected | Per-item artwork, metadata, video preview |
| Collection | Always | Per-collection summary stats |
| File | Reserved for future user customization | (placeholder today) |
Switch tabs by clicking the tab header. The active tab is remembered
per-collection in sidebarActiveTab=item|collection|file.
Per-item, updates as you move selection. Sections:
A horizontally-scrollable strip of every artwork type the item has — auto-discovered standard types plus per-collection custom types plus per-item manual links. See Artwork for the type model.
- Each tab in the gallery is one type (
boxfront,screenshot, etc.). - Click a type tab to display it large above.
- Modifier + middle-click on the item tile cycles types (configurable modifier).
- A video tile appears as the last gallery entry if the item has a preview video — clicking expands the video player. See Video Previews.
- Missing artwork tiles show a placeholder image (or hatch pattern,
per-collection
placeholderArtwork).
| Row | Source |
|---|---|
| Display name | Item's display name (after title-pattern cleanup) |
| File path | Item's file path (truncated; hover for tooltip with full path) |
| File size | Bytes / KiB / MiB / GiB |
| Last modified | File mtime |
| Manual file | Per-item manual link (PDF, EPUB, manual page). Clickable. See Item Metadata. |
| Launcher override | Per-item launcher choice if set. Shows the launcher name. |
| Notes | Free-form notes from the Edit Metadata Dialog. Multi-line; hidden when unset. |
| Tags | Tag list set via the same dialog; chip-style. Searchable via the tag: structured token. |
| Rating | Half-star rating from the same dialog. Hidden when unrated. |
| Source URL | Clickable source URL from the same dialog. |
| Custom fields | User-defined key/value pairs from the Edit Metadata Dialog. |
| Play count | From play_count in the database (Statistics dialog drives this too). |
| Last played | From last_played. Format: 5 minutes ago, Yesterday, etc. |
| Time played | Sum from launch_history (only populated if runtime detection is enabled). |
If the item has a preview video (auto-discovered in videoDirectory),
clicking the video tile in the gallery expands an embedded player:
- Play / pause control
- Volume tied to global
previewVideoVolume(toolbar slider) - Loops by default
- Pauses when selection changes (so the next-item's video can take over)
See Video Previews for formats and tuning.
Per-collection summary, always available even when no item is selected.
| Section | Contents |
|---|---|
| Header | Collection name (and type, if set) |
| Stats | Item count (filtered if search active), subcollections count, total launches, total time played |
| Paths | Media / artwork / video / manual directories |
| Launcher | Default launcher name + path (truncated) |
Useful as a "what is this collection" dashboard — particularly for collections you set up months ago and forgot about.
Reserved for future customization. Today it renders a placeholder; the intent is for advanced users to define their own template in a future release.
The sidebar inherits its colors from the collection's general theme by default, but every aspect can be overridden per-collection.
Where to find this — Settings Dialog → Sidebar tab → Background, Bubbles, Typography sections.
| Setting | INI key | Notes |
|---|---|---|
| Background type | sidebarBackgroundType |
color / image / pattern. |
| Background color | sidebarBackgroundColor |
Hex; used when type = color. |
| Background image | sidebarBackgroundImage |
Path; used when type = image. |
| Pattern | sidebarPattern |
Currently only crosshatch. |
| Pattern intensity | sidebarPatternIntensity |
0–100 alpha. |
| Pattern color | sidebarPatternColor |
Hex tint. |
The sidebar uses translucent "bubble" backgrounds behind section headers and bodies. You can color them and tune their opacity:
| Setting | INI key | Notes |
|---|---|---|
| Header bubble color | sidebarHeaderBgColor |
|
| Header bubble opacity | sidebarHeaderBgOpacity |
0–255 |
| Section bubble color | sidebarSectionBgColor |
|
| Section bubble opacity | sidebarSectionBgOpacity |
0–255 |
| Setting | INI key | Notes |
|---|---|---|
| Text color | sidebarTextColor |
|
| Accent color | sidebarAccentColor |
Used for links, highlighted values. |
| Setting | INI key | Notes |
|---|---|---|
| Font family | sidebarFontFamily |
Empty = inherit from global / system. |
| Font point size | sidebarFontPointSize |
0 = inherit. |
The sidebar font can differ from the rest of the UI — useful for a serif sidebar against a sans-serif grid, for example.
[General]
showMenuBar=true
showToolbar=true
[Movies]
sidebarVisible=true
sidebarMode=expand
sidebarPosition=right
sidebarWidth=350
gridWidth=4
gridWidthSidebarHidden=5[Movies]
sidebarMode=overlay
sidebarPosition=right
sidebarBackgroundType=color
sidebarBackgroundColor=#1a1a2e
sidebarHeaderBgOpacity=160
sidebarSectionBgOpacity=120The overlay floats; opacity-tuned bubbles let the grid show through.
[Movies]
viewType=horizontal
sidebarMode=expand
sidebarPosition=top
sidebarHeight=180
horizontalGridHeight=3
gridHeightSidebarHidden=4The sidebar lives across the top; horizontal scroll runs underneath.
sidebarFontFamily=EB Garamond
sidebarFontPointSize=12Combine with globalUiFontFamily=Inter for a sans-serif main UI and a
serif details pane.
- View Modes — Cover Flow auto-hides the sidebar
- Themes & Appearance — for backgrounds, fonts, and global theming
- Item Metadata — what shows up in the Item tab
- Video Previews — the gallery's video tile
- Sidebar UI: src/ui/widgets/panes/detailspane.ui +
src/ui/controllers/detailspanemanager/
(
DetailsPaneManager). - Visibility & external-hide flag:
DetailsPaneManagerkeeps both the persistedsidebarVisibleand an in-memory "external hide" used by Cover Flow. - Tab model:
DetailsPanebuilds Item / Collection / File widgets on demand;sidebarActiveTabinitial value persists per-collection. - Bubble rendering: custom
QFramesubclasses with painted rounded rectangles, alpha applied viaQColor::setAlpha(). - Resizing & locking:
sidebarWidthLockeddisables the splitter drag handle; the same flag controls height for top/bottom orientation. - Adding a new sidebar section: extend
DetailsPanewith a newQGroupBox/QFrame, populate fromItemMetadata/CollectionConfig, and respect thesidebarHeader*/sidebarSection*styling keys.