Magnifier for Omarchy

A screen magnifier plugin for low-vision users of Omarchy

About

Magnifier is a plugin for Omarchy, the Arch Linux and Hyprland desktop. Hyprland already has a whole-screen zoom that follows the pointer, but out of the box it has no limits, no feedback, and it forgets your zoom level every time the config reloads. Magnifier wraps that zoom into something a low-vision user can live in all day: zoom with the scroll wheel, a key or a pinch, see the zoom level in a big popup beside the pointer, invert the colours of the whole screen, and on a two-monitor desk give each monitor its own pointer and its own zoom level.

It is listed in the official Omarchy plugin marketplace and the source is on GitHub under the MIT license.

The Magnifier zoom popup: a black box with a thick yellow border and large white text reading 300%, shown over a magnified desktop background

Features

Hotkeys

These are the defaults. Every one can be changed or switched off in the settings.

Keys What happens
Ctrl + Alt + Scroll upZoom in by one step
Ctrl + Alt + Scroll downZoom out by one step
Ctrl + Alt + =Zoom in by one step (keyboard only)
Ctrl + Alt + -Zoom out by one step (keyboard only)
Ctrl + Alt + ZZoom to the preset (300%)
Ctrl + Alt + XZoom off (100%)
Ctrl + Alt + IInvert the colours of every screen (press again to restore)
Super + Pinch on the touchpadZoom in and out continuously
Super + Ctrl + Scroll downJump to the next monitor
Super + Ctrl + Scroll upJump to the previous monitor
Super + Ctrl + MUnlock or lock the mouse (two or more monitors)
Super + front side buttonZoom to the preset (only when side buttons are enabled)
Super + back side buttonZoom off (only when side buttons are enabled)

Omarchy's own Super + Ctrl + Z (zoom in) and Super + Ctrl + Alt + Z (zoom reset) keep working. The plugin keeps their result inside your limits and remembers it across reloads, like its own keys.

Using Two Monitors

Hyprland's zoom is a whole-screen zoom that follows the pointer. On one monitor that is perfect. On two monitors it falls apart for low-vision use: the pointer drifts across the edge without you noticing and the zoom lands on the wrong monitor, there is one zoom level for the whole desk, and finding the pointer again on a wide monitor at high zoom is slow.

With two or more monitors the plugin turns the desk into independent screens. Each monitor keeps its own pointer position and its own zoom level, and one hotkey hops between them.

A typical day: put a video on the second monitor, jump to the first, zoom to 300% and work. The video keeps playing full size at 100%. Jump back when you want to watch, and your pointer is where you left it.

Requirements

There are no external dependencies. Everything the plugin uses is part of a stock Omarchy 4 install. Nothing is downloaded and nothing needs sudo.

Install

Two steps. The first adds the plugin to Omarchy. The second connects it to Hyprland.

omarchy plugin add https://github.com/JPDoesDev/omarchy-magnifier --enable
~/.config/omarchy/plugins/jpdoesdev.magnifier/install.sh

The install script does four things, and does each only once even if you run it again:

  1. Appends a marked settings block and the loader line to ~/.config/hypr/hyprland.lua.
  2. Puts the omarchy-magnifier command line tool on your path.
  3. Makes sure the popup plugin is enabled in omarchy-shell.
  4. Reloads Hyprland and checks that the bindings and the popup answer.

That is all. Press Ctrl + Alt + Z and the screen zooms to 300% with a popup beside the pointer.

To update later:

omarchy plugin update jpdoesdev.magnifier
hyprctl reload

Settings

All settings live in one Lua table in ~/.config/hypr/hyprland.lua, above the loader line the installer added. Every key is optional. A missing key, or one with the wrong type, falls back to its default, so a typo can never leave you without zoom. Here is a typical block with the keys people change most often:

-- Omarchy Magnifier settings (every key is optional)
omarchy_magnifier = {
  preset_zoom = 3, -- Ctrl + Alt + Z goes here (3 = 300%)
  step = 1, -- change per scroll notch
  max_zoom = 10,
  side_buttons = false, -- true for Super + side buttons
  keys = {
    lock_toggle = "SUPER + CTRL + M",
  },
}

Want a high-contrast popup? Set the colours yourself and they override the theme:

omarchy_magnifier = {
  osd_style = { background = "#000000", text = "#ffffff", border = "#ffff00" },
}

After editing run hyprctl reload. The full list of settings, the command line tool, and troubleshooting steps are in the README on GitHub.

Removal

Two steps, the reverse of the install. Nothing is left behind and no sudo is needed.

~/.config/omarchy/plugins/jpdoesdev.magnifier/install.sh --uninstall
omarchy plugin remove jpdoesdev.magnifier