Zooming daemon for wayland with multiple features
Project details
miru provides a simple interface to zoom in/out for people who use wl-roots based compositors like niri, hyprland, mangowm etc. It also has features like annotations, export current view as an image, config-file based workflow, cursor highlight etc.
Miru is a keybind-driven screen magnifier and cursor spotlight tool for Wayland, written in C. Inspired by boomer, it freezes your screen into a zoomed view on demand, with no GUI, no XWayland and no mouse-driven setup. When you're not using it, it sits at roughly 0% CPU.
WASD or arrow keys, and zoom with scroll or +/-.Tab to dim everything except a soft-edged circle that follows the pointer, even while zoomed. Resize it live with Shift+Plus/Minus or Ctrl+scroll.Shift+A.F..png or .bmp with Shift+E to drop into slides or share.wlr-layer-shell and wlr-screencopy directly, drawing the overlay with OpenGL ES 2 via EGL. It is HiDPI-aware, and zoom upscaling is configurable (nearest, linear, bicubic).config.toml, with no restart.Shift+H or ? for an on-screen keybind cheat sheet.# Arch Linux (AUR)
paru -S miru-zoom
# Nix / NixOS
nix shell nixpkgs/nixos-unstable#miru -c miru-daemon
# Homebrew (Linuxbrew)
brew tap Vaishnav-Sabari-Girish/taps https://codeberg.org/Vaishnav-Sabari-Girish/homebrew-taps
brew install Vaishnav-Sabari-Girish/taps/miru
miru-daemon
miructl toggle
miructl loupe
miructl spotlight
Mod+Z hotkey-overlay-title="toggle miru" { spawn-sh "miructl toggle"; }
Mod+Alt+Z hotkey-overlay-title="toggle miru loupe" { spawn-sh "miructl loupe"; }
[zoom]
factor = 2.0
smooth = true
upscale = "bicubic"
[spotlight]
radius = 250
dim = 0.65
[export]
format = "png"
Most Wayland screen magnifiers either don't exist or route through XWayland with visible artifacts. Miru talks to the compositor directly. The daemon blocks in poll() until you call it, and toggling is handled by a compositor-level keybind through the tiny miructl client. That is the secure Wayland way, with no root permissions and no raw keyboard reads.
Whether you're streaming, recording a tutorial, giving a talk or just squinting at small text, Miru gives you a fast and scriptable way to point at what matters.
Note: Requires a compositor that exposes
wlr-layer-shellandwlr-screencopy. GNOME (Mutter) and KDE Plasma (KWin) are not currently supported.
Comments
0Start the conversation
Share the first comment.