Omahub
← All plugins
J

Omagrey

by Jay O (@jayosays)

Desktop color, grayscale, and red darkroom filters. Grayscale for focus; red for night.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
cec992e
Scanned
1 month ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

None
AI risk level
None
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
cec992e
Reviewed
1 month ago

The plugin applies color filters via Hyprland's screen shader using straightforward, well-structured QML and GLSL. It only invokes `hyprctl` to set the shader path, reads/writes its own settings, and performs no network, destructive, or obfuscated operations. The deterministic scan found no issues and manual review confirms the code is safe and matches the documented behavior.

How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/jayosays/omagrey --enable
Desktop #Hyprland #bar #workspaces

Omagrey

An Omarchy shell plugin that adds a bar widget for the whole desktop's color mode, in the spirit of macOS Accessibility color filters:

  1. Color — no screen shader, the display as Hyprland would normally render it
  2. Grayscale — luminance-only
  3. Red filter — the same luminance mapped to red only (a photography darkroom look)

Left-click the bar icon to open a picker. Right-click cycles Color → Grayscale → Red → Color. The last mode is stored in ~/.config/omarchy/shell.json and reapplied when the shell starts and when Hyprland reloads its config.

Omagrey

Why these modes

Grayscale is for attention. Color is how interfaces shout — badges, ads, thumbnails, status dots. Stripping hue flattens that salience so the screen is less grabby and it is easier to stay on the thing you opened instead of grazing whatever lights up next. Same idea as macOS grayscale, used here as a whole-desktop focus switch.

Red filter is for night. The desktop becomes a red lamp: less short-wavelength glare than a white or even grayscale screen in the dark, closer to a darkroom safelight or an astronomy chart light, so your eyes have an easier time if you are working late or you need to glance at the machine without blowing out your night vision. Outdoors it is a dimmer beacon than a full-color panel — less porch-light, and less interesting to bugs than a bright white display. Night Light still warms the whites on its own; this is the stronger, all-red pass.

Requirements

  • Omarchy 4 with omarchy-shell
  • Hyprland with decoration:screen_shader (0.56 is known to work)

Installation

From a published git remote:

omarchy plugin add <git-url> --enable --yes

For local development, symlink the repo into the user plugin directory:

mkdir -p "$HOME/.config/omarchy/plugins"
ln -s "$PWD" "$HOME/.config/omarchy/plugins/jo.omagrey"
omarchy-shell shell rescanPlugins
omarchy plugin enable jo.omagrey

The widget lands in the bar's right section by default. Move it with omarchy bar move jo.omagrey --section right.

Saved changes under the plugin directory reload automatically. If a new file is not picked up, run omarchy-shell shell rescanPlugins again.

Remove

Switch to Color first so the screen shader is cleared, then remove the plugin:

omarchy-shell jo.omagrey color
omarchy plugin remove jo.omagrey

omarchy plugin remove disables the widget and deletes (or unlinks) ~/.config/omarchy/plugins/jo.omagrey. It does not undo a shader that is already on the compositor. If you skip the Color step, clear it by hand:

hyprctl eval 'hl.config({ decoration = { screen_shader = "" } })'

If you added the suggested keybindings, delete those three o.bind lines from ~/.config/hypr/bindings.lua.

To remove it without the CLI:

  1. Delete or unlink ~/.config/omarchy/plugins/jo.omagrey
  2. Remove the { "id": "jo.omagrey" } entry from bar.layout in ~/.config/omarchy/shell.json
  3. Run omarchy-shell shell rescanPlugins (or omarchy restart shell)

Keybindings

Add these to ~/.config/hypr/bindings.lua so they appear in the Super+K overlay. Hyprland reloads that file on save. Direct chords apply the mode without opening the picker.

o.bind("SUPER + ALT + Q", "Color filter: color", "omarchy-shell jo.omagrey color")
o.bind("SUPER + ALT + W", "Color filter: grayscale", "omarchy-shell jo.omagrey grayscale")
o.bind("SUPER + ALT + E", "Color filter: red", "omarchy-shell jo.omagrey red")

IPC

omarchy-shell jo.omagrey cycle
omarchy-shell jo.omagrey set red
omarchy-shell jo.omagrey status
omarchy-shell jo.omagrey color
omarchy-shell jo.omagrey grayscale
omarchy-shell jo.omagrey red
omarchy-shell jo.omagrey toggle

Notes

  • The filter is a Hyprland screen shader. It is included in screenshots and recordings. Night Light (hyprsunset) is independent and can still run.
  • This plugin owns decoration:screen_shader. Do not also set it in ~/.config/hypr/hyprland.lua, or a Hyprland reload will fight the widget until the plugin reapplies the saved mode. © 2026 Jay O (@jayosays). Built with Grok.