Skip to content

Attract Bokeh

The bokeh mode renders soft out-of-focus light circles that drift gently across the panel with varying sizes, opacities, and positions. The effect mimics bokeh photography — large translucent circles with radial gradient edges that overlap and blend to produce a dreamy, ambient aesthetic.

Options

Key Type Description Default Allowed Values
speed float Drift speed multiplier controlling how quickly bokeh circles move across the panel surface 1.0 any valid float (0.1–10.0 recommended)
density float Circle count scaling factor from sparse (0.1) to maximum coverage (1.0) on the display 0.5 any valid float (0.1–1.0)
size_variance float Radius spread from uniform circles (0.0) to maximum size variation (1.0) in the scene 0.5 any valid float (0.0–1.0)
saturation float Color saturation level from desaturated pastel (0.0) to vivid fully-saturated hues (1.0) 0.7 any valid float (0.0–1.0)

Policy Fields

Field Type Range Default Description
Speed float64 [0.1, 10.0] 1.0 Drift speed multiplier
Density float64 [0.1, 1.0] 0.5 Circle count scaling
SizeVariance float64 [0.0, 1.0] 0.5 Radius spread (0=uniform, 1=max spread)
Saturation float64 [0.0, 1.0] 0.7 Color saturation

CLI Examples

Query the current policy values:

cyberhudctl display policy attract_bokeh

Set a faster drift speed with higher circle density:

cyberhudctl display config 0 speed=2.5 density=0.8

Panel Compatibility

  • Color TFT — full-color radial gradient circles with saturation control and smooth blending between overlapping circles.
  • Monochrome OLED — circles use luminance-only values without color; gradients render as grayscale intensity falloff from center to edge.
  • E-Ink — a static frozen bokeh scatter frame is produced (see below).

E-Ink Behavior

On e-ink panels, the bokeh mode renders a static frozen bokeh scatter frame suitable for slow-refresh displays. Rather than animating continuous drift, a single arrangement of circles is composed and held indefinitely, avoiding the ghosting and flicker that partial refreshes would introduce. The Speed policy field has no visible effect on e-ink panels since no animation occurs.

Snapshots

Color

color-8x16 8x16
8x16
color-16x8 16x8
16x8
color-80x160 80x160
80x160
color-slow-104x212 104x212
104x212
color-slow-122x250 122x250
122x250
color-128x128 128x128
128x128
color-128x160 128x160
128x160
color-slow-128x296 128x296
128x296
color-135x240 135x240
135x240
color-160x80 160x80
160x80
color-160x128 160x128
160x128
color-slow-176x264 176x264
176x264
color-slow-200x200 200x200
200x200
color-slow-212x104 212x104
212x104
color-240x135 240x135
240x135
color-240x240 240x240
240x240
color-240x320 240x320
240x320
color-slow-250x122 250x122
250x122
color-slow-264x176 264x176
264x176
color-slow-296x128 296x128
296x128
color-slow-300x400 300x400
300x400
color-320x240 320x240
320x240
color-320x480 320x480
320x480
color-slow-400x300 400x300
400x300
color-480x320 480x320
480x320
color-480x800 480x800
480x800
color-slow-480x800 480x800
480x800
color-800x480 800x480
800x480
color-slow-800x480 800x480
800x480

Grayscale

grayscale-fast-8x16 8x16
8x16
grayscale-fast-16x8 16x8
16x8
grayscale-fast-80x160 80x160
80x160
grayscale-slow-104x212 104x212
104x212
grayscale-slow-122x250 122x250
122x250
grayscale-fast-128x128 128x128
128x128
grayscale-fast-128x160 128x160
128x160
grayscale-slow-128x296 128x296
128x296
grayscale-fast-135x240 135x240
135x240
grayscale-fast-160x80 160x80
160x80
grayscale-fast-160x128 160x128
160x128
grayscale-slow-176x264 176x264
176x264
grayscale-slow-200x200 200x200
200x200
grayscale-slow-212x104 212x104
212x104
grayscale-fast-240x135 240x135
240x135
grayscale-fast-240x240 240x240
240x240
grayscale-fast-240x320 240x320
240x320
grayscale-slow-250x122 250x122
250x122
grayscale-slow-264x176 264x176
264x176
grayscale-slow-296x128 296x128
296x128
grayscale-slow-300x400 300x400
300x400
grayscale-fast-320x240 320x240
320x240
grayscale-fast-320x480 320x480
320x480
grayscale-slow-400x300 400x300
400x300
grayscale-fast-480x320 480x320
480x320
grayscale-fast-480x800 480x800
480x800
grayscale-slow-480x800 480x800
480x800
grayscale-fast-800x480 800x480
800x480
grayscale-slow-800x480 800x480
800x480

Mono

mono-8x16 8x16
8x16
mono-16x8 16x8
16x8
mono-32x128 32x128
32x128
mono-64x128 64x128
64x128
mono-slow-104x212 104x212
104x212
mono-slow-122x250 122x250
122x250
mono-128x32 128x32
128x32
mono-128x64 128x64
128x64
mono-128x128 128x128
128x128
mono-slow-128x296 128x296
128x296
mono-slow-176x264 176x264
176x264
mono-slow-200x200 200x200
200x200
mono-slow-212x104 212x104
212x104
mono-slow-250x122 250x122
250x122
mono-slow-264x176 264x176
264x176
mono-slow-296x128 296x128
296x128
mono-slow-300x400 300x400
300x400
mono-slow-400x300 400x300
400x300
mono-slow-480x800 480x800
480x800
mono-slow-800x480 800x480
800x480