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.
This commit is contained in:
5 files changed
+127
-38
No files matched your search
@@ -0,0 +1,16 @@
|
||||
# Changelog
|
||||
|
||||
## 0.1.0 (2026-04-07)
|
||||
|
||||
Initial release.
|
||||
|
||||
### Features
|
||||
|
||||
- GPU-rendered ring light overlay using wgpu/WGSL fragment shader
|
||||
- Rounded rectangle SDF with gaussian glow falloff
|
||||
- Full desktop input passthrough via dynamic `wl_region` cursor hole
|
||||
- Cursor avoidance with rounded-square soft fade
|
||||
- Color temperature support: presets (warm, cool, studio, daylight, golden) and custom Kelvin
|
||||
- Toggle on/off via PID lock file and SIGUSR1 signaling
|
||||
- Works on any wlroots-based Wayland compositor (Sway, Hyprland, niri, river, etc.)
|
||||
- MangoHUD suppression for clean Vulkan overlay
|
||||
Generated
-36
@@ -345,12 +345,6 @@ dependencies = [
|
||||
"hashbrown 0.16.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "itoa"
|
||||
version = "1.0.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
||||
|
||||
[[package]]
|
||||
name = "jni-sys"
|
||||
version = "0.3.1"
|
||||
@@ -498,16 +492,6 @@ dependencies = [
|
||||
"jni-sys 0.3.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "niri-ipc"
|
||||
version = "25.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "12bd9eb4e437f5282ce853cf66837658379cb537b4b6bae687da59246005329a"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nix"
|
||||
version = "0.29.0"
|
||||
@@ -747,7 +731,6 @@ version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bytemuck",
|
||||
"niri-ipc",
|
||||
"nix",
|
||||
"pollster",
|
||||
"raw-window-handle",
|
||||
@@ -824,19 +807,6 @@ dependencies = [
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.149"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"memchr",
|
||||
"serde",
|
||||
"serde_core",
|
||||
"zmij",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "shlex"
|
||||
version = "1.3.0"
|
||||
@@ -1396,9 +1366,3 @@ dependencies = [
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zmij"
|
||||
version = "1.0.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
|
||||
+7
-2
@@ -2,14 +2,19 @@
|
||||
name = "ringa"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
description = "Wayland ring light overlay"
|
||||
license = "MIT"
|
||||
description = "GPU-rendered ring light overlay for Wayland"
|
||||
repository = "https://github.com/swaits/ringa"
|
||||
homepage = "https://github.com/swaits/ringa"
|
||||
readme = "README.md"
|
||||
keywords = ["wayland", "ring-light", "overlay", "wgpu", "camera"]
|
||||
categories = ["command-line-utilities", "multimedia"]
|
||||
authors = ["Stephen Waits <steve@waits.net>"]
|
||||
rust-version = "1.85"
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0"
|
||||
bytemuck = { version = "1", features = ["derive"] }
|
||||
niri-ipc = "25.11.0"
|
||||
nix = { version = "0.29", features = ["signal", "process", "poll"] }
|
||||
pollster = "0.4"
|
||||
raw-window-handle = "0.6"
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Stephen Waits
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,83 @@
|
||||
# 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)
|
||||
Reference in new issue
Block a user