4b30a1d260
Screensaver was consuming ~8% CPU due to ControlFlow::Poll rendering as fast as possible. Switch to WaitUntil with configurable FPS cap. Blank and image screensavers auto-cap at 2fps since they have no animation, reducing CPU usage to near zero.
96 lines
3.5 KiB
TOML
96 lines
3.5 KiB
TOML
# scr33ny — OLED screensaver config
|
|
# Copy to ~/.config/scr33ny/config.toml
|
|
|
|
# ── Screensaver ───────────────────────────────────────────────────────────────
|
|
# type: blank | gif | image | text
|
|
|
|
[screensaver]
|
|
type = "blank" # pure black (default, OLED-optimal)
|
|
|
|
# ── GIF example ───────────────────────────────────────────────────────────────
|
|
# [screensaver]
|
|
# type = "gif"
|
|
# path = "~/.config/scr33ny/cat.gif"
|
|
# scale = "fit" # fit | fill | original
|
|
|
|
# ── Image example ─────────────────────────────────────────────────────────────
|
|
# [screensaver]
|
|
# type = "image"
|
|
# path = "~/.config/scr33ny/wallpaper.png"
|
|
# scale = "fill"
|
|
|
|
# ── Text animation example ────────────────────────────────────────────────────
|
|
# [screensaver]
|
|
# type = "text"
|
|
# content = "scr33ny"
|
|
# font_size = 96.0
|
|
# color = "#ffffff"
|
|
# animation = "float" # float | typewriter | fade
|
|
|
|
# ── Display settings ─────────────────────────────────────────────────────────
|
|
|
|
[display]
|
|
monitor = 0 # monitor index (0 = primary). See: scr33ny monitors
|
|
burn_shift = 2 # pixel shift for OLED burn-in prevention
|
|
shift_interval = 120 # seconds between shifts
|
|
fps = 30 # max frames per second (blank/image auto-cap at 2)
|
|
|
|
# ── Idle daemon ───────────────────────────────────────────────────────────────
|
|
|
|
[daemon]
|
|
enabled = false # set true to use: scr33ny daemon
|
|
idle_timeout = 300 # seconds of inactivity before activating
|
|
|
|
# ── Widgets ───────────────────────────────────────────────────────────────────
|
|
# Each widget is a [[widgets]] block.
|
|
# position.x: left | center | right | <percent 0-100>
|
|
# position.y: top | center | bottom | <percent 0-100>
|
|
|
|
# Digital clock (center screen)
|
|
[[widgets]]
|
|
type = "clock"
|
|
style = "digital" # digital | analog
|
|
font_size = 72.0
|
|
color = "#ffffff"
|
|
show_seconds = true
|
|
|
|
[widgets.position]
|
|
x = "center"
|
|
y = "center"
|
|
|
|
# Date below the clock
|
|
[[widgets]]
|
|
type = "date"
|
|
font_size = 28.0
|
|
color = "#aaaaaa"
|
|
format = "%A, %B %d" # chrono strftime format
|
|
|
|
[widgets.position]
|
|
x = "center"
|
|
y = 62.0 # 62% from top
|
|
|
|
# Weather widget (requires OpenWeatherMap API key)
|
|
# [[widgets]]
|
|
# type = "weather"
|
|
# api_key = "YOUR_OWM_API_KEY" # openweathermap.org
|
|
# location = "Moscow"
|
|
# units = "metric" # metric | imperial
|
|
# font_size = 22.0
|
|
# color = "#cccccc"
|
|
#
|
|
# [widgets.position]
|
|
# x = "right"
|
|
# y = "top"
|
|
|
|
# Analog clock example
|
|
# [[widgets]]
|
|
# type = "clock"
|
|
# style = "analog"
|
|
# font_size = 40.0 # controls clock size
|
|
# color = "#ffffff"
|
|
# show_seconds = true
|
|
#
|
|
# [widgets.position]
|
|
# x = "center"
|
|
# y = "center"
|