mirror of
https://github.com/vee1e/moomer.git
synced 2026-09-01 10:18:47 +00:00
Make xcap/winit/pixels/image optional under the default `gui` feature so `cargo clippy/test --lib --no-default-features` no longer needs dbus on Ubuntu. Format main.rs for rustfmt.
2.3 KiB
2.3 KiB
Moomer
Zoomer application for macOS. A poor man's clone of tsoding/boomer.
Quick Start
$ cargo build --release
$ cargo run --release
Controls
| Control | Description |
|---|---|
| q | Quit the application. |
| Drag with left mouse button | Move the image around. |
| Scroll wheel or trackpad | Zoom in/out (centered on cursor). |
Features
- Zooms only the display under the cursor at launch (works with external monitors)
- Fullscreen overlay on that monitor
- Smooth zoom with trackpad gestures
- Native macOS trackpad support
- Pan by clicking and dragging
Building
Dependencies
$ cargo build --release
The following Rust crates are used:
xcap- Screen capture (successor to unmaintainedscreenshots)winit- Window management and input handlingpixels- Pixel buffer renderingimage- Image processing
CI / tests
GitHub Actions (Linux) runs:
$ cargo fmt --all -- --check
$ cargo clippy --lib --no-default-features -- -D warnings
$ cargo test --lib --no-default-features
Platform-independent logic lives in src/lib.rs. The gui feature (default on) pulls in
xcap / winit / pixels for the binary; CI disables it so Linux runners never need dbus/X11.
Running
$ cargo build --release
$ cargo run --release
The application captures the display under your mouse cursor and covers that monitor with a fullscreen overlay. Use your trackpad or mouse to zoom and pan.
Install to PATH (needed for Raycast)
Raycast scripts usually resolve moomer via ~/.local/bin. After every rebuild:
$ cargo build --release
$ cp -f target/release/moomer ~/.local/bin/moomer
Raycast Script Command
Import or paste scripts/moomer-raycast.sh as a Raycast Script Command:
- Mode: Silent
- Runs
~/.local/bin/moomerdetached (nohup) so Raycast doesn’t kill the overlay - Logs:
/tmp/moomer.logand/tmp/moomer.raycast.out
If Raycast “does nothing”, check those logs — a stale ~/.local/bin/moomer was a common cause (it crashed on launch).
