mirror of https://github.com/vee1e/moomer - MacOS zooming app
Find a file
lakshit verma 862a9712c8
Fix CI: rustfmt and keep GUI deps off the Linux lib job
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.
2026-07-24 01:22:21 +05:30
.github/workflows Fix CI: rustfmt and keep GUI deps off the Linux lib job 2026-07-24 01:22:21 +05:30
scripts Fix macOS overlay launch: faster capture, no Space thrash, Raycast-safe 2026-07-20 13:08:38 +05:30
src Fix CI: rustfmt and keep GUI deps off the Linux lib job 2026-07-24 01:22:21 +05:30
target Initial commit 2025-11-12 22:37:16 +05:30
.gitignore feat: fixed the window issue sort of 2025-11-14 04:08:07 +05:30
banner.webp feat: fixed the window issue sort of 2025-11-14 04:08:07 +05:30
Cargo.lock Fix CI: rustfmt and keep GUI deps off the Linux lib job 2026-07-24 01:22:21 +05:30
Cargo.toml Fix CI: rustfmt and keep GUI deps off the Linux lib job 2026-07-24 01:22:21 +05:30
README.md Fix CI: rustfmt and keep GUI deps off the Linux lib job 2026-07-24 01:22:21 +05:30

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 unmaintained screenshots)
  • winit - Window management and input handling
  • pixels - Pixel buffer rendering
  • image - 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/moomer detached (nohup) so Raycast doesnt kill the overlay
  • Logs: /tmp/moomer.log and /tmp/moomer.raycast.out

If Raycast “does nothing”, check those logs — a stale ~/.local/bin/moomer was a common cause (it crashed on launch).