# 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

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

### From crates.io

```sh
cargo install ringa
```

### With mise

```sh
mise use cargo:ringa
```

## Usage

```sh
# 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**
```kdl
binds {
    Mod+F12 { spawn "ringa"; }
}
```

## Requirements

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

## License

[MIT](LICENSE)
