swaits dac98835f8 chore: add LICENSE, README, CHANGELOG, and publish metadata
Add MIT license, README with usage/install instructions and hotkey
binding examples, CHANGELOG for v0.1.0, and complete Cargo.toml
metadata (repository, homepage, keywords, categories). Remove unused
niri-ipc dependency.
2026-04-07 12:30:37 -06:00

ringa

GPU-rendered ring light overlay for Wayland. Simulates a monitor-mounted ring light by drawing a bright glowing border around your screen during video calls.

Features

  • GPU-rendered via wgpu/WGSL fragment shader -- smooth gaussian glow, no banding
  • Full desktop passthrough -- clicks, scrolls, and keyboard input pass through to your desktop
  • Cursor avoidance -- the ring fades near your mouse so you can see and interact with UI elements
  • Color temperature -- pure white default, or warm/cool/custom Kelvin presets
  • Toggle on/off -- bind to a hotkey; running it again kills the existing instance
  • Works on any wlroots-based Wayland compositor (Sway, Hyprland, niri, river, etc.)

Install

From source

git clone https://github.com/swaits/ringa.git
cd ringa
cargo install --path .

From crates.io

cargo install ringa

With mise

mise use cargo:ringa

Usage

# Pure white (default)
ringa

# Color temperature presets
ringa warm       # 3200K tungsten
ringa golden     # 2700K golden hour
ringa studio     # 5000K neutral studio
ringa daylight   # 5600K daylight balanced
ringa cool       # 6500K cool daylight

# Custom Kelvin (1000-40000)
ringa 4200

Run it again to toggle off.

Hotkey binding

Bind ringa to a key in your compositor config. Examples:

Sway / i3

bindsym $mod+F12 exec ringa

Hyprland

bind = $mainMod, F12, exec, ringa

niri

binds {
    Mod+F12 { spawn "ringa"; }
}

Requirements

  • Wayland compositor with wlr-layer-shell-unstable-v1 support
  • Vulkan-capable GPU

License

MIT

S
Description
GPU-rendered ring light overlay for Wayland
Readme MIT
73 KiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 92.6%
WGSL 7.4%