A screen magnification tool for Linux. Rust implementation inspired by boomer.
- Real-time screen zoom with smooth animations
- Flashlight mode (spotlight effect)
- X11 and Wayland support (unlike the original, which only supports X11)
- Configurable via file
- Low CPU usage when idle
sudo pacman -S mesa libxkbcommon libxkbcommon-x11 waylandsudo apt install libgl1-mesa-dev libwayland-dev libxkbcommon-dev libxkbcommon-x11-devsudo dnf install mesa-libGL-devel wayland-devel libxkbcommon-devel libxkbcommon-x11-develRequires Rust 1.70+
git clone https://github.com/AlphaLawless/boomer-rs.git
cd boomer-rs
cargo build --release# Option 1: User install (recommended)
sudo install -Dm755 target/release/boomer /usr/local/bin/boomer
# Option 2: Via cargo
cargo install --path .# If installed with Option 1
sudo rm /usr/local/bin/boomer
# If installed with cargo
cargo uninstall boomerboomer # Fullscreen mode
boomer -w # Windowed mode
boomer -d 2 # Delay 2 seconds before capture
boomer --new-config # Generate default config file| Key | Action |
|---|---|
Scroll / + - |
Zoom in/out |
Left Mouse + Drag |
Pan around |
0 |
Reset zoom |
F |
Toggle flashlight mode |
Ctrl + Scroll |
Adjust flashlight radius (when active) |
R |
Reload config |
Q / Esc |
Quit |
Config file is automatically created on first run.
| Location | Path |
|---|---|
| Config file | ~/.config/boomer/config |
# Boomer configuration
min_scale = 0.01
scroll_speed = 1.5
drag_friction = 6.0
scale_friction = 4.0| Option | Description | Default |
|---|---|---|
min_scale |
Minimum zoom level | 0.01 |
scroll_speed |
Zoom speed multiplier | 1.5 |
drag_friction |
Pan inertia friction (higher = stops faster) | 6.0 |
scale_friction |
Zoom animation friction (higher = stops faster) | 4.0 |
Press R to reload config without restarting.
Unlike the original boomer which only supports X11, this Rust implementation includes native Wayland support using the wlr-screencopy protocol. This makes it compatible with modern Wayland compositors like:
- Sway
- Hyprland
- River
- Other wlroots-based compositors
The application automatically detects your display server and uses the appropriate backend (X11 or Wayland).
This project was built with inspiration and references from:
Original Project:
- tsoding/boomer - Original X11-only implementation in Nim by Alexey Kutepov (tsoding)
X11 Implementation:
Screenshot Capture:
- Fast Screenshots in Linux with OpenCV
- xrectsel - X11 rectangle selection tool
- slop - X11 region selection utility
- scrot - Screenshot utility
Technical Documentation:
- X11 MIT-SHM Extension
- PPM Image Format
- nim-syscall - System call examples
Wayland Support:
- wlr-screencopy protocol - Wayland screenshot protocol
- coffeeispower/woomer - Wayland port inspiration
MIT