Skip to content

Documentation

Settings reference

Bonjourr's settings are stored in JSON formatting, which you can see in the settings management section. Use this page to know which JSON property refers to what. Last updated for version 22.0.0

{
showall: false, // Show all available settings in menu
lang: '', // Sets interface and settings menu language
dark: 'system', // enabled | disabled | auto | system
favicon: '', // An emoji
tabtitle: '', // Max 80 characters
greeting: '', // Max 24 characters
pagegap: 1, // Gap between widgets, from 0 to 8
pagewidth: 1600, // In pixel, from 600 to 2200
time: true, // toggles clock & date widget
main: true, // toggles weather & greetings widget
dateformat: 'eu', // auto | us | eu | cn
quicklinks: true, // toggles quicklinks widget
textShadow: 0.2, // Interface text shadow, from 0 to 1
announcements: 'major', // all | major | none
review: 0, // -1 to disable
css: '', // User generated CSS
}

Collections names in “images” & “videos” are tied to our server and cannot be changed or guessed.

{
backgrounds: {
type: "images", // Type of backgrounds: images | videos | files | urls | color
fadein: 0, // Background fade when opening a new tab page
blur: 0, // Blur amount
bright: 1, // Brightness amount
frequency: "hour", // Fackground change frequency: tabs | hour | daylight | day | pause
color: "#185A63", // Background color when selecting "color" type
queries: {}, // User queries when searching tags or collections
pausedUrl: "" // A string if background is locked (paused)
pausedImage: {} // An image object if locked
pausedVideo: {} // A video object if locked
texture: {
type: "grain", // Texture overlays on top of your backgrounds
opacity: 0.26, // Texture opacity
size: 200 // Texture size
},
videos: "bonjourr-videos-daylight", // Read only: chooses video collection to display
images: "bonjourr-images-daylight", // Read only: chooses image collection to display
}
}
{
clock: {
size: 1, // Analog clock size
ampm: false, // 12 or 24 hours
ampmposition: // top-left | top-right | bottom-left | bottom-right
analog: false, // Toggle analog or digital
seconds: false, // Toggle seconds
face: none, // none | numbers | roman | marks
style: round, // ..
timezone: auto, // auto | -12 | -11 | ... | +12
},
analogstyle: {
face: none, // none | number | roman | marks | swiss | braun
hands: modern, // modern | swiss | classic | braun | apple
shape: round, // round | square | rectangle
border: #ffff, // Any valid CSS color
background: #fff2, // Any valid CSS color
}
}

General settings for quick links.

{
linkstyle: 'large', // large | medium | small | inline | text
linknewtab: false, // open in new tab
linksrow: 6, // From 1 to 16
linkiconradius: 1.1 // In em
linkgroups: {
on: false, // true | false
selected: '', // Selected group
groups: [''], // List of groups. Groups are unique titles.
pinned: [], // Groups pinned to interface
synced: [], // Synchronised groups, handled by the browser
}
}

When adding a quick link

{
[link._id]: {
_id: '' // "links" + 6 random characters
parent: '' // A group or folder id
order: 0 // Link position on interface
title: '' // Max 64 characters
url: '' // Max 256 characters
icon?: '' // Valid URL or dataURI
}
}

These widgets behave pretty similarly: basic key-val.

{
notes: {
on: false, // Toggle widget
width: 40, // Container width in "em"
opacity: 0.1, // From 0 to 1
align: 'left', // left | center | right
},
searchbar: {
on: false, // Toggle widget
opacity: 0.1, // From 0 to 1
newtab: false, // Open in new tab
suggestions: true, // Toggle suggestions
engine: 'default', // default | google | bing | ddg | yahoo | qwant | ... | custom
request: '', // A valid search URL with its query parameter set to "%s"
placeholder: '', // Max 64 characters
},
quotes: {
on: false, // Toggle widget
author: false, // Toggle author
type: 'classic', // classic | inspirobot | kaamelott | custom | URL
frequency: 'day', // tabs | hour | daylight | day | pause
last: 1650516688, // Set to 0 to change quotes
},
}
{
pomodoro: {
on: false, // true | false
mode: 'pomodoro', // pomodoro | break | longbreak
pause: 0, // timestamp
end: 0, // timestamp
timeFor: {
pomodoro: 1500, // in seconds
break: 300, // in seconds
longbreak: 1200, // in seconds
},
focus: false, // true | false
sound: true, // true | false
history: [{
endedAt: '' // date string
duration: 0 // in seconds
}],
}
}

Most fields in fonts are set automatically by Bonjourr and cannot easily be modified manually.

{
font: {
family: '', // Fontsource font family
size: '14', // Interface size in 'px'
system: true, // Specify if font is from the device
weightlist: [], // Available font weights
weight: '400', // Interface font weight
}
}
{
weather: {
ccode: undefined, // Valid country code
city: undefined, // Any city name
unit: 'metric', // metric | imperial
provider: '', // Custom 'moreinfo' weather provider
moreinfo: 'none', // none | msnw | yhw | windy | custom
forecast: 'auto', // auto | always | never
temperature: 'actual', // actual | feelslike | both
geolocation: 'approximate', // approximate | precise | off
}
}
{
greeting: '' // Your greeting name
greetingsize: '' // font-size in em
greetingsmode: '' // auto | custom
greetingscustom: {
morning: '' // any string
afternoon: '' // any string
evening: '' // any string
night: '' // any string
}
}

Specify which element on the page you want to hide.

{
hide: {
clock: false // true | false
date: false // true | false
greetings: false // true | false
weatherdesc: false // true | false
weathericon: false // true | false
settingsicon: false // true | false
}
}

Page layouts are pretty complex. Grids are tables, items are widget alignments.

{
move: {
selection: 'single', // single | double | triple
layouts: {
single: {
grid: grid, // single column grid
items: items, // items aligment
},
double: {
grid: grid, // double column grid
items: items, // items aligment
},
triple: {
grid: grid, // triple column grid
items: items, // items aligment
}
}
}
}
// single
grid: [
['time'],
['main'],
['quicklinks']
],
// double
grid: [
['time', '.'],
['main', '.'],
['quicklinks', '.'],
],
// triple
grid: [
['time', '.', '.'],
['main', '.', '.'],
['quicklinks', '.', '.'],
]
items: {
[widget]: {
box: '', // "baseline | center | end", "baseline | center | end"
text: '', // left | center | right
}
}