Skip to content

Tankōbon / shared/settings / AppSettings

Interface: AppSettings ​

Defined in: shared/settings.ts:155

Preferences, persisted key by key (see SettingsRepository): per user in the user_settings table, except the SHARED_SETTINGS, which every user shares in the settings table.

Properties ​

achievementsEnabled ​

achievementsEnabled: boolean

Defined in: shared/settings.ts:229

Whether the achievements exist: off, the sidebar has no "Accomplissements" entry, /achievements redirects to the library and nothing is earned or announced. Those already earned are kept, and the ones justified meanwhile are earned when it is turned back on.


addOpenedBooksToLibrary ​

addOpenedBooksToLibrary: boolean

Defined in: shared/settings.ts:166

Whether opening a book adds it to the library when it isn't there yet. Off, a book that isn't in the library is read anonymously: nothing is saved, and it reopens from its first page.


askUserOnStartup ​

askUserOnStartup: boolean

Defined in: shared/settings.ts:218

Whether the app starts on a screen where the user picks who is reading. Personal: it is read for the user the app reopens on (the last active one), and the screen's "don't ask again" box turns it off for that user only.


backupIntervalDays ​

backupIntervalDays: number

Defined in: shared/settings.ts:233

Days between two automatic copies of the database (1 to MAX_BACKUP_INTERVAL_DAYS); 0 turns them off.


backupKeep ​

backupKeep: number

Defined in: shared/settings.ts:235

How many copies of the database are kept (1 to MAX_BACKUP_KEEP); the oldest ones are deleted.


bedethequeSearchByDefault ​

bedethequeSearchByDefault: boolean

Defined in: shared/settings.ts:210

Whether the lookup dialog's Bédéthèque box (search of the series on the site) starts ticked. Bédéthèque has no API, so it is off by default; the box is always offered and can be ticked for one search.


checkUpdatesOnStartup ​

checkUpdatesOnStartup: boolean

Defined in: shared/settings.ts:231

Whether the app asks GitHub at every start if a newer release exists, and offers to download it.


comicVineApiKey ​

comicVineApiKey: string

Defined in: shared/settings.ts:201

Personal Comic Vine API key (free, from comicvine.gamespot.com/api); Comic Vine refuses requests without one.


comicVineEnabled ​

comicVineEnabled: boolean

Defined in: shared/settings.ts:199

Whether metadata lookups query Comic Vine (only when comicVineApiKey is set too).


fileNameRules ​

fileNameRules: string[]

Defined in: shared/settings.ts:290

The templates the user read file names with in the lookup dialog (parseFileName(), written like libraryFileName), most recent first, at most MAX_FILE_NAME_RULES: offered again next time.


googleBooksApiKey ​

googleBooksApiKey: string

Defined in: shared/settings.ts:205

Optional Google Books API key; without one, requests share Google's anonymous quota.


googleBooksEnabled ​

googleBooksEnabled: boolean

Defined in: shared/settings.ts:203

Whether metadata lookups query Google Books.


homeEnabled ​

homeEnabled: boolean

Defined in: shared/settings.ts:182

Whether the home page exists: off, the sidebar has no "Accueil" entry and the app starts on the library.


homeSections ​

homeSections: HomeSectionSetting[]

Defined in: shared/settings.ts:187

The home page's blocks in display order, each shown or hidden. A block missing from the list (added by a later release) is appended, shown; see isHomeSections.


ignoredDuplicates ​

ignoredDuplicates: string[]

Defined in: shared/settings.ts:300

The duplicate groups the user chose to keep as they are ("Tout garder"), as duplicateGroupKey()s: the duplicates search doesn't offer them again unless asked. At most MAX_IGNORED_DUPLICATES.


language ​

language: LanguageSetting

Defined in: shared/settings.ts:157

Interface language: one forced by the user, or system to follow the OS (English when it isn't supported).


lastBackupAt ​

lastBackupAt: string

Defined in: shared/settings.ts:237

When the last copy of the database was made (ISO 8601); empty when there has been none.


lastResyncAt ​

lastResyncAt: string

Defined in: shared/settings.ts:239

When the last resynchronization finished (ISO 8601); empty when there has been none.


lastScanFolder ​

lastScanFolder: string

Defined in: shared/settings.ts:302

Folder last added with "Ajouter un dossier…" (empty before the first one): where the next folder dialog opens.


libraryArticles ​

libraryArticles: string[]

Defined in: shared/settings.ts:274

The articles libraryIgnoreArticles moves, edited by the user (see isArticleList).


libraryFileName ​

libraryFileName: string

Defined in: shared/settings.ts:265

Name given to the files the organization moves, without the extension: text with {series}, {volume}, {title}, {year} and {author} fields (see fillFileNameTemplate()), for example {series} - T{volume} - {title}. Empty (the default), a file keeps its original name. Like libraryStructure, changing it renames nothing by itself.


libraryGroupBySeries ​

libraryGroupBySeries: boolean

Defined in: shared/settings.ts:172

Whether the library list is grouped by series, each series behind a heading that can be folded.


libraryIgnoreArticles ​

libraryIgnoreArticles: boolean

Defined in: shared/settings.ts:272

Whether the organization files a name under its first real word: a leading article of libraryArticles goes to the end (Le vent du nord → Vent du nord (Le)) in the series and album folders, the letter level and the {series} and {title} fields of the file name. Like the tree, it moves nothing by itself.


libraryOrganization ​

libraryOrganization: LibraryOrganization

Defined in: shared/settings.ts:246

Library organization: off leaves the files where they are; otherwise the comics added (a file, a folder, a resynchronization) can be moved into libraryOrganizationFolder, laid out as libraryStructure says: ask offers it after each addition, always does it without asking. A comic found directly in that folder is always moved, unless off.


libraryOrganizationFolder ​

libraryOrganizationFolder: string

Defined in: shared/settings.ts:251

Folder the library organization moves the comics into (empty until one is chosen). Set only by the main process, through a folder dialog (library:pick-organization-folder): settings:set refuses it.


librarySidecarCovers ​

librarySidecarCovers: boolean

Defined in: shared/settings.ts:280

Whether a book's cover thumbnail is kept beside it (<name>.cover.webp), so a shared library folder carries its covers. Off, the covers are extracted and kept in this machine's local cache only; covers already beside the books are still read.


librarySort ​

librarySort: "lastOpened" | "addedDesc" | "addedAsc" | "releaseDesc" | "releaseAsc" | "titleAsc" | "titleDesc"

Defined in: shared/settings.ts:177

Order of the library list when it isn't grouped by series: lastOpened (most recently opened first), by date added, by release date (books without one last) or by title, each both ways.


libraryStructure ​

libraryStructure: LibraryLevel[]

Defined in: shared/settings.ts:258

Tree of the organized folder, from its first level down (see isLibraryStructure): for example ['letter', 'series'] puts Tintin T01.cbz in T/Tintin/. Empty (the default), each comic gets its own subfolder named after the file and its library id. Changing it moves nothing by itself: "Organiser toute la bibliothèque…" moves the comics to their new place.


libraryView ​

libraryView: LibraryView

Defined in: shared/settings.ts:168

How the library shows its books: how much each row shows, or a grid of covers (see LibraryView).


libraryWriteNfo ​

libraryWriteNfo: boolean

Defined in: shared/settings.ts:285

Whether a .nfo file describing the book is written beside it (when a resynchronization finds none and when a lookup is saved). Off, no .nfo is created or replaced; existing ones are still read.


lookupRuleCollapsed ​

lookupRuleCollapsed: boolean

Defined in: shared/settings.ts:295

Whether the file name rule block of the lookup dialog is folded (only its title shows): the choice is kept so the user doesn't fold or unfold it at each lookup.


pageSpacing ​

pageSpacing: number

Defined in: shared/settings.ts:195

Gap in pixels between pages in continuous mode (0 = pages touch).


readerBackground ​

readerBackground: string

Defined in: shared/settings.ts:197

CSS color behind the pages in the reader (any <input type="color"> value, i.e. #rrggbb).


readingDirection ​

readingDirection: "ltr" | "rtl"

Defined in: shared/settings.ts:161

Page-turn direction: left-to-right (BD/comics) or right-to-left (manga).


readingListView ​

readingListView: BookRowView

Defined in: shared/settings.ts:170

How much each row of a reading list's page shows, set apart from the library's (see BookRowView).


readingMode ​

readingMode: "single" | "continuous"

Defined in: shared/settings.ts:193

single: one page at a time. continuous: pages flow one after another in a vertical scroll.


resyncOnStartup ​

resyncOnStartup: boolean

Defined in: shared/settings.ts:212

Whether the library is resynchronized with its folders in the background at every start.


scrollDirection ​

scrollDirection: "standard" | "inverted"

Defined in: shared/settings.ts:191

Mouse/trackpad wheel direction in the reader: scrolling down advances or retreats a page.


sidebarCollapsed ​

sidebarCollapsed: boolean

Defined in: shared/settings.ts:189

Whether the sidebar is collapsed to an icon-only rail.


statsEnabled ​

statsEnabled: boolean

Defined in: shared/settings.ts:223

Whether the statistics page exists: off, the sidebar has no "Statistiques" entry and /stats redirects to the library. Reading time is still recorded, so nothing is lost when it comes back.


theme ​

theme: "system" | "light" | "dark"

Defined in: shared/settings.ts:159

Color scheme of the interface (the reader's background has its own setting, AppSettings.readerBackground).