Omahub
← All plugins
F

Theme Extend

by famas

Bar background and text color controls

Security review

Review recommended · 6 findings

Deterministic scan — not a security guarantee

Low
Risk level
Low
Analyzed commit
1df6620
Scanned
1 month ago
  • low obfuscation Panel.qml:281

    Augments a command with octal/hex escape sequences.

    \034background"] = "# famas.theme-extend managed [bar] background"\n' +
  • low obfuscation Panel.qml:282

    Augments a command with octal/hex escape sequences.

    \034text"] = "# famas.theme-extend managed [bar] text"\n' +
  • low obfuscation Panel.qml:283

    Augments a command with octal/hex escape sequences.

    \034background"] = "# famas.theme-extend managed [popups] background"\n' +
  • low obfuscation Panel.qml:284

    Augments a command with octal/hex escape sequences.

    \034background"] = "# famas.theme-extend restore [bar] background: "\n' +
  • low obfuscation Panel.qml:285

    Augments a command with octal/hex escape sequences.

    \034text"] = "# famas.theme-extend restore [bar] text: "\n' +
  • low obfuscation Panel.qml:286

    Augments a command with octal/hex escape sequences.

    \034background"] = "# famas.theme-extend restore [popups] background: "\n' +

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

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

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

The plugin is a bar widget that reads and writes theme color values in the user's Omarchy config files (shell.toml and hyprland.lua) as documented. The deterministic scan's 'obfuscation' flags are false positives: the octal escape sequences (\034) are just control characters used as delimiters in TOML string construction, not hidden code. All user-supplied hex values are validated with a strict regex before being used in shell commands, and the commands only modify the user's own config files.

  • The plugin uses sed -i to modify user config files without creating backups, but this is consistent with its documented purpose and the changes are limited to color values.
  • The plugin invokes external commands (omarchy-theme-switcher, etc.) but only when the user clicks the corresponding buttons, and these are standard Omarchy utilities.
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/MEPPERDONAS/Quattro-ExtentTheme --enable
Widgets #bar #quickshell #system

Theme Extend

Theme Extend preview

Bar widget for Omarchy that extends the active theme palette with direct color controls for the active Hyprland border, the bar text, and the bar background. It reads the current theme colors from Omarchy, updates the theme state, and keeps the UI synchronized with the active theme and the current overrides.

Features

  • Borders Color: writes the selected color to active_border_color in the active theme's hyprland.lua state file. If the file does not exist, it creates a minimal hl.config(...) template with a default inactive border color.
  • Bar Text: writes the selected hex color to [bar] text in shell.toml.
  • Bar Background: writes the selected hex color to [bar] background and also to [popups] background in shell.toml so popup surfaces stay consistent with the bar background.
  • Theme-aware palette: reads all swatches from the active theme's colors.toml, deduplicates equal hex values, and marks the current selection with a visible SET marker.
  • Theme and background actions in the hero: includes the following buttons with tooltips:
    • Switch Theme — invokes the Omarchy theme switcher.
    • Open Image Picker — invokes the Omarchy background selector.
    • Reset Bar Colors — removes the plugin-managed bar overrides so the bar falls back to the active theme defaults.
  • Contrast guard for bar colors: when a text color is selected, background swatches that fail WCAG AA contrast against it are disabled. A warning box appears and offers a one-click fix that picks a readable text color automatically.
  • Keyboard navigation: supports left/right and up/down navigation within the swatch grids and activation with the keyboard.
  • Automatic refresh: watches the active theme and refreshes the palette when Omarchy changes the active theme or when the shell config is updated.
  • Tooltips by color role: each swatch shows the color name, and the disabled state explains the contrast issue against the current text color.

Install

omarchy plugin add https://github.com/MEPPERDONAS/Quattro-ExtentTheme.git --enable

Then place the widget in the bar:

omarchy bar put famas.theme-extend

The widget appears as a small palette icon in the bar. You can move it if needed:

omarchy bar move famas.theme-extend --section center

You can also validate it with:

omarchy plugin validate famas.theme-extend

Updating

omarchy plugin update famas.theme-extend
omarchy restart shell

Removing it

omarchy plugin remove famas.theme-extend

This removes the plugin and its bar entry. The files it edits in your Omarchy config remain in place, because they are part of your personal theme setup and not managed by the plugin itself.

Usage

Click the palette icon in the bar to open the panel. The UI is built around three sections:

  1. Borders Color — click a swatch to apply it to active_border_color in the active theme state. The matching swatch is highlighted when the written value matches the current selection.
  2. Bar Text — click a swatch to set [bar] text in shell.toml.
  3. Bar Background — click a swatch to set [bar] background, and the plugin also updates [popups] background for the popup surface.
  4. Quick actions — use the hero buttons to switch themes, pick a background image, or reset managed bar colors.

Hover over any swatch to read the color name. If the selected background and text color do not meet the contrast threshold, the swatch becomes disabled and the warning card offers automatic remediation.

Modified Files

Action File
Borders color ~/.local/state/omarchy/current/theme/hyprland.lua (active_border_color)
Bar text ~/.config/omarchy/shell.toml ([bar] text)
Bar background ~/.config/omarchy/shell.toml ([bar] background, [popups] background)

The widget also reads the active theme name from ~/.local/state/omarchy/current/theme.name when available, and falls back to the resolved theme directory name if that file has not been written yet.

Note: the plugin only recognizes literal hex values in shell.toml. If a value is written as a role name such as foreground, it is treated as unmanaged by this plugin and no swatch is shown as selected until you choose a new color from the panel.

Requirements

  • Omarchy with quickshell.
  • A Nerd Fonts-capable icon font for the hero and bar button icons.
  • Commands omarchy-theme-switcher, omarchy-theme-set, omarchy-theme-bg-switcher, and omarchy-theme-bg-set for theme/background selectors.

Customization

The integration paths are defined as properties at the top of Panel.qml and can be adjusted if your setup differs:

  • omarchyStateDir — current Omarchy state directory.
  • themeDir — current theme state directory.
  • userShellPath — path to the user's shell.toml.

License

This project is licensed under the MIT License. See LICENSE for details.