A high-performance, system-wide color picker for Linux (Wayland & X11) and Windows. Click → Color → Done. Zero latency, pixel-perfect precision.
IE-R (pronounced 'eyer') is a color picker and daemon. It lives in your system tray, activates via hotkeys, and puts the color under your cursor into your clipboard instantly.
This is the resurrection of the original "Instant Eyedropper" tool, which has served users for over 20 years. Now it's a native Wayland app written from scratch in Rust. Same idea — but with everything users asked for over two decades finally built in.
Press your hotkey (or click the tray icon). A magnifier appears over your screen. Point at a pixel, click — the color is in your clipboard in whatever format you need. The overlay closes. You paste.
That's the basic loop. But there's more:
- Serial picks —
middle-clickor pressSpaceto keep picking without closing the overlay. Colors stack up. - Precision —
arrow keysmove 1px at a time.Shift+arrowsjump to the next color boundary on screen. - Zoom —
scroll wheelchanges magnification.Alt+scrollchanges the sampling area for averaging colors over a region. - Formats — keys
1through0switch between 10 formats. Format switches instantly in the overlay and in what gets copied. - Resize on the fly —
Shift+scrollresizes the magnifier,Ctrl+scrollchanges font size. No restart, no config reload. - History — last picked colors live in the tray context menu with color swatches. Click to re-copy.
- Multi-monitor: Any number of screens, mixed resolutions, fractional scaling (1.25x, 1.5x, etc.)
- HiDPI: Real physical pixels in the magnifier, not interpolated mush
- Stash deck: Unlimited sequential picks, accumulated in a stack
- Precision Control:
Arrow Keysto move 1px at a time. - Hyper Jump:
Shift + Arrowsjumps the cursor to the next significant color change (threshold is configurable). - Dynamic Aperture:
Mouse Wheelchanges the magnifier's zoom level. - Area Sampling:
Alt + Scrollchanges the capture area to calculate the average color of a region. - 10 color formats: HTML, HEX, RGB, HSL, HSV, CMYK, Float, Delphi, VB Hex, Long, + customizable templates
- Hotkey: Configurable global hotkey (default Alt+Shift+X for X11) + SIGUSR1 for Wayland compositors
- Config: Single TOML file. Preserves your comments on save. Controls everything: colors, sizes, fonts, physics, effects
- Tray: SNI system tray with color history, format selection, config access
- CLI / Probe modes: Scripts can sample pixels directly (
--pixel,--pixels,--stdin,--history,--monitors), compose with the relay axis (clipboard, swatch, format), or raise an interactive overlay on demand (--pick). Seedocs/cli.mdfor the full reference.
IE-R is written in Pure Rust (Edition 2024) and talks directly to Wayland protocols. No Electron, no heavy frameworks, zero GPU overhead.
It uses a tiered capture chain to ensure you get your pixels as fast as the hardware allows:
- Tier 1: WLR Screencopy (~10-30ms) — Best for Hyprland, Sway, and wlroots-based compositors.
- Tier 2: KWin ScreenShot2 (~30-50ms) — Native speed for KDE Plasma.
- Tier 3: XDG Desktop Portal (~500ms+) — Universal fallback for GNOME and other environments.
If you have Nix installed with Flakes enabled:
nix run github:miaupaw/ie-rTo install it into your profile:
nix profile install github:miaupaw/ie-rThe Nix package handles everything automatically: binary, .desktop file, icon, and KWin authorization.
yay -S ie-rThe PKGBUILD installs the binary, .desktop file, and icon to standard system paths. KWin authorization works out of the box.
Download the latest ie-r-vX.X.X-linux-x86_64.AppImage from Releases:
chmod +x ie-r-v*.AppImage
./ie-r-v*.AppImageOn first launch, IE-R installs its .desktop entry and icons into ~/.local/share/ automatically — pointing them at the AppImage's current location. Move the file later? Next launch detects the new path and updates the .desktop. The AppImage is self-contained and runs on any x86_64 Linux with a glibc-compatible runtime.
To remove desktop integration, delete the AppImage and:
rm ~/.local/share/applications/ie-r.desktop \
~/.local/share/icons/hicolor/{scalable,symbolic}/apps/ie-r*.svgDownload the latest ie-r-vX.X.X-linux-x86_64-portable.zip from Releases. Unpack anywhere and run the integration script:
unzip ie-r-v*.zip
cd ie-r
./postinstall.shpostinstall.sh installs the .desktop file and icon into ~/.local/share/, offers to add IE-R to autostart, and prints a hotkey setup tip. The bundle is self-contained — it ships its own libraries and runs on any x86_64 Linux.
The bundle ships its own quick-start guide — see docs/README.portable.linux.md.
Requires Rust 1.85+ (edition 2024) and development libraries: wayland-client, libxkbcommon, dbus, fontconfig, libx11.
git clone https://github.com/miaupaw/ie-r
cd ie-r
cargo build --release
./target/release/ie-rIf you build from source, you'll need to install the .desktop file and icon manually — see Post-install below.
KWin ScreenShot2 requires a .desktop file with a special key to authorize direct screen capture. Without it, IE-R falls back to XDG Portal (~500ms instead of ~30ms).
Nix, AUR, and the portable bundle's
postinstall.shhandle this automatically. The steps below are only needed for manual/source builds.
The file assets/ie-r.desktop already contains the necessary X-KDE-DBUS-Restricted-Interfaces=org.kde.KWin.ScreenShot2 entry. Install it so KWin can find it:
sudo cp assets/ie-r.desktop /usr/share/applications/ie-r.desktop
# Fix Exec= to match your actual binary path
sudo sed -i 's|Exec=ie-r|Exec=/usr/bin/ie-r|' /usr/share/applications/ie-r.desktopImportant: The
Exec=path must resolve to the same file as/proc/PID/exeof the running process. KWin matches these paths to decide whether to authorize capture. If they don't match — you getNoAuthorizedand fall back to the slow portal.
sudo cp assets/ie-r.svg /usr/share/icons/hicolor/scalable/apps/ie-r.svg
sudo cp assets/ie-r-64x64.png /usr/share/icons/hicolor/64x64/apps/ie-r.png
gtk-update-icon-cache /usr/share/icons/hicolor/ 2>/dev/null || trueWayland compositors block global input capture by design. IE-R listens for UNIX signals as a workaround — bind these commands to your compositor's hotkey settings:
pkill -SIGUSR1 ie-r # activate color picker
pkill -SIGUSR2 ie-r # open color history menuHyprland (~/.config/hypr/hyprland.conf):
bind = ALT SHIFT, C, exec, pkill -SIGUSR1 ie-r
bind = ALT SHIFT, H, exec, pkill -SIGUSR2 ie-r
Sway (~/.config/sway/config):
bindsym Alt+Shift+x exec pkill -SIGUSR1 ie-r
bindsym Alt+Shift+h exec pkill -SIGUSR2 ie-r
KDE Plasma: System Settings → Shortcuts → Custom Shortcuts → Add new → Command/URL. Set the command to pkill -SIGUSR1 ie-r and assign your preferred key combo.
On X11 sessions, IE-R also supports a built-in hotkey (default
Alt+Shift+X), configurable in~/.config/ie-r/config.toml.
To launch IE-R automatically on login, copy the .desktop file to your autostart directory:
cp ~/.local/share/applications/ie-r.desktop ~/.config/autostart/Settings live in ~/.config/ie-r/config.toml. Picked color history lives in ~/.local/state/ie-r/history.toml. Both files are created as needed on first run, and IE-R preserves your comments when updating the config.
Run ie-r --help for a colour-coded quick reference, or see docs/cli.md for the full CLI documentation: every mode, every flag, configuration recipes (including a chrome-less magnifier preset), exit-code semantics, and platform-specific clipboard notes.
IE-R is source-available under a custom license. See LICENSE for the full text.
- Source code — you may read and modify it for personal use. Public forks, redistribution of modified versions, and incorporation into other projects are not permitted.
- Individuals & small organizations (fewer than 50 employees and under $1M annual gross revenue) — free to use.
- Business — For business use, please contact the author .
Author: Konstantin Yagola.
Built with passion in Kyiv, Ukraine. 🇺🇦
