Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

opendimo

opendimo

a tiny ambilight daemon for linux + wayland


grabs the screen, averages colors along the edges, pushes them to a skydimo led strip over usb serial. no hyperion, no qt, no gui - just a small rust binary.

requirements

  • a compositor that supports the wlr-screencopy protocol (hyprland, sway, river, niri, etc). gnome/kde won't work.

  • grim installed (pacman -S grim / apt install grim)

  • your user in the dialout (or uucp) group for serial access:

    sudo usermod -aG dialout $USER

building

cargo build --release binary lands in target/release/opendimo.

run:

skydimo-ambilight

calibration

default walk order is clockwise from the top-left corner. if the strip lights up wrong, don't touch the code - play with --reverse and --offset until it lines up.

troubleshooting

  • nothing happens - check the port (ls -l /dev/ttyUSB*) and that you're in the right group.
  • colors flipped/wrong order - calibrate with --reverse/--offset, not a protocol bug.
  • high cpu / stutter - lower fps. each frame is a real screenshot. 8-12 is plenty.

how it works

captures via grim (spawned fresh each frame - deliberate, avoids memory leaks from holding a persistent screencopy connection open), slices the image into perimeter zones, averages each zone, smooths frame-to-frame, ships it out over serial using skydimo's protocol.

credits

protocol reverse-engineered from the skydimo team's openrgb fork: https://gitlab.com/skydimo-team/skydimo-open-rgb

About

an open-source client for linux wayland for ambient lighting control (skydimo only)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages