Omahub
← All plugins
A

Chroma

by Ajan Raj

Fast screen color picker and eyedropper for Omarchy. Pick any pixel, copy HEX, RGB or HSL values, browse color history, generate palettes, and check WCAG contrast.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
f5d1fed
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
f5d1fed
Reviewed
1 month ago

The plugin is a well-structured color picker with no malicious behavior. It uses standard system tools (hyprpicker, wl-clipboard, jq, python3) and performs only local, user-initiated actions. The history and shortcut scripts include robust security checks (file ownership, permissions, symlink protection, transactional rollback) and the code is transparent and well-tested.

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/ajanraj/omarchy-chroma --enable
Developer Tools #Hyprland #quickshell #launcher

Chroma

Chroma is a fast screen color picker and eyedropper for Omarchy, Hyprland and Wayland. Pick any pixel on screen, instantly copy HEX, RGB or HSL values, revisit your color history, generate palettes and inspect contrast.

Chroma showing a picked color, history, palette, and contrast

Watch the eight-second pick-to-paste demo.

The normal flow is deliberately short: press a shortcut, choose a pixel, and paste the copied HEX value. Chroma then gives you the useful developer context without turning the pick into a form-filling exercise.

Use it as a Wayland color picker or Hyprland color picker when you want the native eyedropper instead of a browser-only tool. The default HEX color picker output is uppercase and ready for CSS. Press R when the same screen sample is needed as an RGB color picker value.

What Chroma does

  • Picks an exact screen pixel through Hyprpicker's native Wayland magnifier.
  • Adds an eyedropper button to the Omarchy bar for one-click picking.
  • Copies uppercase #RRGGBB as soon as the selection succeeds.
  • Exposes CSS-ready HEX, RGB, and HSL values.
  • Keeps a local, deduplicated 32-color history.
  • Builds a compact tint, shade, and complementary color palette.
  • Compares the current color with black and white using WCAG 2.2 contrast.

Chroma is an Omarchy color picker first. It uses the tools already present on a current Omarchy installation, so there is no online service, account, portal, or second screenshot pipeline.

Install

Chroma requires Omarchy Quattro, Hyprpicker 0.4.7 or newer, wl-clipboard, jq, and Python 3. Current Omarchy installations already provide these dependencies.

omarchy plugin add https://github.com/ajanraj/omarchy-chroma.git --enable

Chroma's eyedropper is placed on the right side of the bar.

Shortcut

Click the eyedropper in the bar. On first use, Chroma offers SUPER + ALT + C and checks it against your live Hyprland bindings before making any change. Use Left or Right to choose another free option, Enter to install it, or Tab to keep using the bar without a shortcut.

The available choices are SUPER + ALT + C, SUPER + ALT + P, SUPER + CTRL + SHIFT + C, and SUPER + CTRL + SHIFT + P. Chroma refuses to replace an occupied binding. Right-click the bar icon whenever you want to run shortcut setup again.

Omarchy's existing SUPER + PRINT color picker is left unchanged.

You can also start a pick from a terminal:

omarchy-shell shell summon io.github.ajanraj.chroma '{"action":"pick"}'

Keys

Key Action
C Copy HEX
R Copy RGB
H Copy HSL
P Pick another color
Left / Right Move through recent colors
Enter Select the highlighted recent color
Esc Close Chroma or cancel Hyprpicker

Clicking a palette color copies it without adding the generated value to sampled color history.

Color and contrast behavior

Hyprpicker returns the composited screen pixel as opaque sRGB. A screen pick cannot recover alpha or the source document's original color space, so Chroma does not pretend otherwise.

The palette uses fixed sRGB mixes for two tints and two shades. Its complementary swatch rotates HSL hue by 180 degrees. These colors are suggestions, not an accessible palette guarantee.

The contrast checker uses the WCAG 2.2 relative-luminance formula and its current 0.04045 breakpoint. Chroma evaluates WCAG contrast pass/fail before rounding the displayed ratio.

Local data

History stays on this machine at:

~/.local/state/chroma/history.json

Chroma stores only canonical HEX strings. It makes no network requests.

Before loading history, Chroma requires the file to be a small regular file owned by the current user. If validation fails, picking and copying continue with memory-only history until the unexpected file is moved aside.

If you install a shortcut, Chroma manages ~/.config/hypr/chroma.lua and a marked three-line loader block in ~/.config/hypr/bindings.lua. Choosing “Not now” creates ~/.local/state/chroma/shortcut-setup-skipped. It never changes unrelated bindings.

Remove

Remove Chroma's managed shortcut first, then remove the plugin:

~/.config/omarchy/plugins/io.github.ajanraj.chroma/scripts/shortcut remove
omarchy plugin remove io.github.ajanraj.chroma

Removal preserves color history. If you also want to discard it, move ~/.local/state/chroma to the trash after checking the path.

Troubleshooting

  • Could not start screen picker: run hyprpicker --version and confirm you are in a Wayland session.
  • Copy failed: run wl-copy --version, then press C in Chroma to retry.
  • Chroma does not open: confirm the plugin is enabled with omarchy plugin list and run the summon command above.
  • Shortcut setup reports a conflict: use Left or Right; Chroma only installs a binding that Hyprland reports as free.
  • History is memory-only: move the unexpected ~/.local/state/chroma/history.json file aside, then restart the Omarchy shell.
  • A mixed-scale or multi-monitor pick is wrong: reproduce it with plain hyprpicker --format=hex --no-fancy and include the monitor layout and scale in the bug report.

License

MIT