Skip to content

Repository files navigation

Plugin Control

Plugin Control gives Omarchy Quattro a command palette to find plugins and choose what to do: add, remove, enable, disable, or update them.

Plugin Control command palette

Install

omarchy plugin add https://github.com/ilyaZar/plugin-control.git --enable

Click the bar icon to open Plugin Control. Plugin manifests cannot add global shortcuts. For a keyboard shortcut, add this binding to your repo-managed or user-owned bindings.lua:

o.bind(
"CTRL + P",
"Plugin Control",
"omarchy-shell shell toggle io.github.ilyazar.plugin-control '{}'"
)

This uses plain Ctrl+p, so it replaces the usual application shortcut while the binding is active. Change "CTRL + P" if that gets in your way.

Use

Search and actions

Plugin Control opens from a local cache, with no network or Git work. Press Ctrl+r for fresh catalog and marketplace data.

Search by plugin name, ID, description, author, or tag. Press Enter to see that plugin's available actions. Search and direct commands use the same menu:

  • built-in plugins show Enable or Disable when Omarchy allows that action
  • added user plugins show Update, Enable, Disable, or Remove when available
  • available user plugins show Add
  • inactive full bars show Enable; active full bars are left alone

Plugin Control runs every change through native omarchy plugin commands.

To narrow the list by action, use:

  • plug-add: shows plugins available through omarchy plugin add
  • plug-remove: shows removable local plugins
  • plug-enable: shows disabled switchable plugins
  • plug-disable: shows enabled switchable plugins
  • plug-update: checks first, then shows safely updateable plugins

Type add, remove, enable, disable, or update to find the matching command. Press Tab or Enter to complete it. Text after the colon filters the plugins. Completing plug-update: starts a read-only update check.

Updates

Ctrl+u opens plug-update: and checks each added Git plugin against upstream HEAD. It shows only safe fast-forward updates and changes nothing. Choosing Update runs:

omarchy plugin update <plugin-id> --yes && omarchy restart shell

After Add, or an Update that changed a plugin, Plugin Control restarts Omarchy Shell once. If that fails, the plugin change stays and Plugin Control tells you to run omarchy restart shell.

Update is dimmed when Plugin Control cannot prove it is safe. This includes copied plugins, development symlinks, dirty checkouts, unsupported Git layouts, and ahead or diverged histories. Leave it selected for one second, or press Enter, to see why. If one check fails, the other results still appear with a yellow warning. A failed scan is red.

Useful keys

KeysAction
Ctrl+p or EscapeClose from the plugin list
Up, Down, Page Up, Page DownMove the selection
Home or EndJump to the first or last result
EnterComplete or confirm
TabComplete the selected command
Ctrl+BackspaceRemove the previous word
Ctrl+uCheck for updateable plugins
Ctrl+rRefresh catalog and metrics
Ctrl+iShow read-only plugin details
Ctrl+wOpen the marketplace page
Ctrl+gOpen the source repository
Ctrl+sOpen settings; Escape returns
Escape or q in any submenuReturn directly to the plugin list

The status row shows actions on the left and the catalog on the right. Yellow means work or a warning, green means recent success, and red means a failed action or no usable data. Hover over a warning to see the failed source and fallback.

Plugin information

Ctrl+i opens read-only details: the full description, source, repository, tags, marketplace activity, and verification state. Verification reflects the marketplace checks for the listed commit; it is not a security audit.

Marketplace previews download on demand and are cached as PNGs for the shell. Click the card for the full preview. Press Enter or Space for the details, or Escape or q for the plugin list. Ctrl+r refreshes marketplace totals; failed requests keep the last valid values, and missing values are not shown as zero.

Demo

Click either preview to play the video.

Add, remove, enable, and disable plugins

Add, remove, enable, and disable

Manage the btop plugin from one action menu.

Refresh the catalog and configure Plugin Control

Refresh and settings

Refresh the catalog, change tray settings, and cleanly reinstall Plugin Control.

Start and stop

These commands turn Plugin Control itself on or off. Tray options only control whether its bar icon is visible:

~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start --tray-hidden
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control stop

The helper is not on PATH. Run it by full path, or run bin/plugin-control from the checkout. start uses the tray setting from your configuration. A tray flag overrides that setting. stop turns off the whole plugin.

Settings

Press Ctrl+s for plugin settings, keybindings, clean removal, and Cancel / Back. Move with j/k, the arrow keys, or the mouse. Press Enter to choose, or Escape or q to return to the plugin list.

~/.config/omarchy/ilyazar.plugin-control/channels.yaml
~/.config/hypr/bindings.lua
settings:
tray-icon-hidden: falsebackground_dim: false

Plugin Control never rewrites your Ctrl+p binding. Saving valid YAML updates the tray and background settings at once. Set background_dim to true to dim the workspace behind the palette.

Only schema 2 is accepted. Invalid YAML stays untouched. Plugin Control reports the rejected value and uses the last valid configuration, or the shipped defaults for a recoverable first-run error.

Dependencies

  • Omarchy Quattro and its shell
  • Bash, curl, Git, and jq
  • Ruby with Psych
  • util-linux (flock and setsid)
  • GNU coreutils (timeout)
  • omarchy-launch-terminal for terminal adds

Plugin Control installs no packages and requests no elevated privileges.

Remove

Use plug-remove: for native removal. To remove the saved data as well, choose Cleanly remove Plugin Control and user data from Settings. Then pick one:

  • Yes (preserve user data) uses native removal
  • Yes (delete user data) removes namespaced state and the recognized Plugin Control keybinding before native removal
  • No / abort makes no changes

The native command is:

omarchy plugin remove io.github.ilyazar.plugin-control

Native removal preserves:

  • settings: ~/.config/omarchy/ilyazar.plugin-control/
  • cache: ~/.cache/omarchy/ilyazar.plugin-control/
  • state: ~/.local/state/omarchy/ilyazar.plugin-control/

Clean removal deletes these paths and the recognized Plugin Control binding.

Development

For plugin development, keep the source outside ~/.config/omarchy/plugins/<plugin-id> and symlink it into that path. Plugin Control does not manage the source behind the symlink. Update leaves the checkout alone, and Remove deletes only the symlink.

tests/all.sh
shellcheck bin/plugin-control scripts/*.sh tests/*.sh
omarchy plugin validate .

Official Marketplace design

Kudos where Kudos is due: the detail view follows the icon language, activity rules, and semantic colors of @HANCORE-linux's MIT-licensed Omarchy Plugin Marketplace. It uses Omarchy's installed Nerd Font rather than bundling the website font.

License

MIT. See LICENSE.

About

Ctrl+P fuzzy command palette for Omarchy plugins

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - ilyaZar/plugin-control: Ctrl+P fuzzy command palette for Omarchy plugins · GitHub
Skip to content

Repository files navigation

Plugin Control

Plugin Control gives Omarchy Quattro a command palette to find plugins and choose what to do: add, remove, enable, disable, or update them.

Plugin Control command palette

Install

omarchy plugin add https://github.com/ilyaZar/plugin-control.git --enable

Click the bar icon to open Plugin Control. Plugin manifests cannot add global shortcuts. For a keyboard shortcut, add this binding to your repo-managed or user-owned bindings.lua:

o.bind(
"CTRL + P",
"Plugin Control",
"omarchy-shell shell toggle io.github.ilyazar.plugin-control '{}'"
)

This uses plain Ctrl+p, so it replaces the usual application shortcut while the binding is active. Change "CTRL + P" if that gets in your way.

Use

Search and actions

Plugin Control opens from a local cache, with no network or Git work. Press Ctrl+r for fresh catalog and marketplace data.

Search by plugin name, ID, description, author, or tag. Press Enter to see that plugin's available actions. Search and direct commands use the same menu:

  • built-in plugins show Enable or Disable when Omarchy allows that action
  • added user plugins show Update, Enable, Disable, or Remove when available
  • available user plugins show Add
  • inactive full bars show Enable; active full bars are left alone

Plugin Control runs every change through native omarchy plugin commands.

To narrow the list by action, use:

  • plug-add: shows plugins available through omarchy plugin add
  • plug-remove: shows removable local plugins
  • plug-enable: shows disabled switchable plugins
  • plug-disable: shows enabled switchable plugins
  • plug-update: checks first, then shows safely updateable plugins

Type add, remove, enable, disable, or update to find the matching command. Press Tab or Enter to complete it. Text after the colon filters the plugins. Completing plug-update: starts a read-only update check.

Updates

Ctrl+u opens plug-update: and checks each added Git plugin against upstream HEAD. It shows only safe fast-forward updates and changes nothing. Choosing Update runs:

omarchy plugin update <plugin-id> --yes && omarchy restart shell

After Add, or an Update that changed a plugin, Plugin Control restarts Omarchy Shell once. If that fails, the plugin change stays and Plugin Control tells you to run omarchy restart shell.

Update is dimmed when Plugin Control cannot prove it is safe. This includes copied plugins, development symlinks, dirty checkouts, unsupported Git layouts, and ahead or diverged histories. Leave it selected for one second, or press Enter, to see why. If one check fails, the other results still appear with a yellow warning. A failed scan is red.

Useful keys

KeysAction
Ctrl+p or EscapeClose from the plugin list
Up, Down, Page Up, Page DownMove the selection
Home or EndJump to the first or last result
EnterComplete or confirm
TabComplete the selected command
Ctrl+BackspaceRemove the previous word
Ctrl+uCheck for updateable plugins
Ctrl+rRefresh catalog and metrics
Ctrl+iShow read-only plugin details
Ctrl+wOpen the marketplace page
Ctrl+gOpen the source repository
Ctrl+sOpen settings; Escape returns
Escape or q in any submenuReturn directly to the plugin list

The status row shows actions on the left and the catalog on the right. Yellow means work or a warning, green means recent success, and red means a failed action or no usable data. Hover over a warning to see the failed source and fallback.

Plugin information

Ctrl+i opens read-only details: the full description, source, repository, tags, marketplace activity, and verification state. Verification reflects the marketplace checks for the listed commit; it is not a security audit.

Marketplace previews download on demand and are cached as PNGs for the shell. Click the card for the full preview. Press Enter or Space for the details, or Escape or q for the plugin list. Ctrl+r refreshes marketplace totals; failed requests keep the last valid values, and missing values are not shown as zero.

Demo

Click either preview to play the video.

Add, remove, enable, and disable plugins

Add, remove, enable, and disable

Manage the btop plugin from one action menu.

Refresh the catalog and configure Plugin Control

Refresh and settings

Refresh the catalog, change tray settings, and cleanly reinstall Plugin Control.

Start and stop

These commands turn Plugin Control itself on or off. Tray options only control whether its bar icon is visible:

~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start --tray-hidden
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control stop

The helper is not on PATH. Run it by full path, or run bin/plugin-control from the checkout. start uses the tray setting from your configuration. A tray flag overrides that setting. stop turns off the whole plugin.

Settings

Press Ctrl+s for plugin settings, keybindings, clean removal, and Cancel / Back. Move with j/k, the arrow keys, or the mouse. Press Enter to choose, or Escape or q to return to the plugin list.

~/.config/omarchy/ilyazar.plugin-control/channels.yaml
~/.config/hypr/bindings.lua
settings:
tray-icon-hidden: falsebackground_dim: false

Plugin Control never rewrites your Ctrl+p binding. Saving valid YAML updates the tray and background settings at once. Set background_dim to true to dim the workspace behind the palette.

Only schema 2 is accepted. Invalid YAML stays untouched. Plugin Control reports the rejected value and uses the last valid configuration, or the shipped defaults for a recoverable first-run error.

Dependencies

  • Omarchy Quattro and its shell
  • Bash, curl, Git, and jq
  • Ruby with Psych
  • util-linux (flock and setsid)
  • GNU coreutils (timeout)
  • omarchy-launch-terminal for terminal adds

Plugin Control installs no packages and requests no elevated privileges.

Remove

Use plug-remove: for native removal. To remove the saved data as well, choose Cleanly remove Plugin Control and user data from Settings. Then pick one:

  • Yes (preserve user data) uses native removal
  • Yes (delete user data) removes namespaced state and the recognized Plugin Control keybinding before native removal
  • No / abort makes no changes

The native command is:

omarchy plugin remove io.github.ilyazar.plugin-control

Native removal preserves:

  • settings: ~/.config/omarchy/ilyazar.plugin-control/
  • cache: ~/.cache/omarchy/ilyazar.plugin-control/
  • state: ~/.local/state/omarchy/ilyazar.plugin-control/

Clean removal deletes these paths and the recognized Plugin Control binding.

Development

For plugin development, keep the source outside ~/.config/omarchy/plugins/<plugin-id> and symlink it into that path. Plugin Control does not manage the source behind the symlink. Update leaves the checkout alone, and Remove deletes only the symlink.

tests/all.sh
shellcheck bin/plugin-control scripts/*.sh tests/*.sh
omarchy plugin validate .

Official Marketplace design

Kudos where Kudos is due: the detail view follows the icon language, activity rules, and semantic colors of @HANCORE-linux's MIT-licensed Omarchy Plugin Marketplace. It uses Omarchy's installed Nerd Font rather than bundling the website font.

License

MIT. See LICENSE.

About

Ctrl+P fuzzy command palette for Omarchy plugins

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ilyaZar/plugin-control: Ctrl+P fuzzy command palette for Omarchy plugins · GitHub
Skip to content

Repository files navigation

Plugin Control

Plugin Control gives Omarchy Quattro a command palette to find plugins and choose what to do: add, remove, enable, disable, or update them.

Plugin Control command palette

Install

omarchy plugin add https://github.com/ilyaZar/plugin-control.git --enable

Click the bar icon to open Plugin Control. Plugin manifests cannot add global shortcuts. For a keyboard shortcut, add this binding to your repo-managed or user-owned bindings.lua:

o.bind(
"CTRL + P",
"Plugin Control",
"omarchy-shell shell toggle io.github.ilyazar.plugin-control '{}'"
)

This uses plain Ctrl+p, so it replaces the usual application shortcut while the binding is active. Change "CTRL + P" if that gets in your way.

Use

Search and actions

Plugin Control opens from a local cache, with no network or Git work. Press Ctrl+r for fresh catalog and marketplace data.

Search by plugin name, ID, description, author, or tag. Press Enter to see that plugin's available actions. Search and direct commands use the same menu:

  • built-in plugins show Enable or Disable when Omarchy allows that action
  • added user plugins show Update, Enable, Disable, or Remove when available
  • available user plugins show Add
  • inactive full bars show Enable; active full bars are left alone

Plugin Control runs every change through native omarchy plugin commands.

To narrow the list by action, use:

  • plug-add: shows plugins available through omarchy plugin add
  • plug-remove: shows removable local plugins
  • plug-enable: shows disabled switchable plugins
  • plug-disable: shows enabled switchable plugins
  • plug-update: checks first, then shows safely updateable plugins

Type add, remove, enable, disable, or update to find the matching command. Press Tab or Enter to complete it. Text after the colon filters the plugins. Completing plug-update: starts a read-only update check.

Updates

Ctrl+u opens plug-update: and checks each added Git plugin against upstream HEAD. It shows only safe fast-forward updates and changes nothing. Choosing Update runs:

omarchy plugin update <plugin-id> --yes && omarchy restart shell

After Add, or an Update that changed a plugin, Plugin Control restarts Omarchy Shell once. If that fails, the plugin change stays and Plugin Control tells you to run omarchy restart shell.

Update is dimmed when Plugin Control cannot prove it is safe. This includes copied plugins, development symlinks, dirty checkouts, unsupported Git layouts, and ahead or diverged histories. Leave it selected for one second, or press Enter, to see why. If one check fails, the other results still appear with a yellow warning. A failed scan is red.

Useful keys

KeysAction
Ctrl+p or EscapeClose from the plugin list
Up, Down, Page Up, Page DownMove the selection
Home or EndJump to the first or last result
EnterComplete or confirm
TabComplete the selected command
Ctrl+BackspaceRemove the previous word
Ctrl+uCheck for updateable plugins
Ctrl+rRefresh catalog and metrics
Ctrl+iShow read-only plugin details
Ctrl+wOpen the marketplace page
Ctrl+gOpen the source repository
Ctrl+sOpen settings; Escape returns
Escape or q in any submenuReturn directly to the plugin list

The status row shows actions on the left and the catalog on the right. Yellow means work or a warning, green means recent success, and red means a failed action or no usable data. Hover over a warning to see the failed source and fallback.

Plugin information

Ctrl+i opens read-only details: the full description, source, repository, tags, marketplace activity, and verification state. Verification reflects the marketplace checks for the listed commit; it is not a security audit.

Marketplace previews download on demand and are cached as PNGs for the shell. Click the card for the full preview. Press Enter or Space for the details, or Escape or q for the plugin list. Ctrl+r refreshes marketplace totals; failed requests keep the last valid values, and missing values are not shown as zero.

Demo

Click either preview to play the video.

Add, remove, enable, and disable plugins

Add, remove, enable, and disable

Manage the btop plugin from one action menu.

Refresh the catalog and configure Plugin Control

Refresh and settings

Refresh the catalog, change tray settings, and cleanly reinstall Plugin Control.

Start and stop

These commands turn Plugin Control itself on or off. Tray options only control whether its bar icon is visible:

~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start --tray-hidden
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control stop

The helper is not on PATH. Run it by full path, or run bin/plugin-control from the checkout. start uses the tray setting from your configuration. A tray flag overrides that setting. stop turns off the whole plugin.

Settings

Press Ctrl+s for plugin settings, keybindings, clean removal, and Cancel / Back. Move with j/k, the arrow keys, or the mouse. Press Enter to choose, or Escape or q to return to the plugin list.

~/.config/omarchy/ilyazar.plugin-control/channels.yaml
~/.config/hypr/bindings.lua
settings:
tray-icon-hidden: falsebackground_dim: false

Plugin Control never rewrites your Ctrl+p binding. Saving valid YAML updates the tray and background settings at once. Set background_dim to true to dim the workspace behind the palette.

Only schema 2 is accepted. Invalid YAML stays untouched. Plugin Control reports the rejected value and uses the last valid configuration, or the shipped defaults for a recoverable first-run error.

Dependencies

  • Omarchy Quattro and its shell
  • Bash, curl, Git, and jq
  • Ruby with Psych
  • util-linux (flock and setsid)
  • GNU coreutils (timeout)
  • omarchy-launch-terminal for terminal adds

Plugin Control installs no packages and requests no elevated privileges.

Remove

Use plug-remove: for native removal. To remove the saved data as well, choose Cleanly remove Plugin Control and user data from Settings. Then pick one:

  • Yes (preserve user data) uses native removal
  • Yes (delete user data) removes namespaced state and the recognized Plugin Control keybinding before native removal
  • No / abort makes no changes

The native command is:

omarchy plugin remove io.github.ilyazar.plugin-control

Native removal preserves:

  • settings: ~/.config/omarchy/ilyazar.plugin-control/
  • cache: ~/.cache/omarchy/ilyazar.plugin-control/
  • state: ~/.local/state/omarchy/ilyazar.plugin-control/

Clean removal deletes these paths and the recognized Plugin Control binding.

Development

For plugin development, keep the source outside ~/.config/omarchy/plugins/<plugin-id> and symlink it into that path. Plugin Control does not manage the source behind the symlink. Update leaves the checkout alone, and Remove deletes only the symlink.

tests/all.sh
shellcheck bin/plugin-control scripts/*.sh tests/*.sh
omarchy plugin validate .

Official Marketplace design

Kudos where Kudos is due: the detail view follows the icon language, activity rules, and semantic colors of @HANCORE-linux's MIT-licensed Omarchy Plugin Marketplace. It uses Omarchy's installed Nerd Font rather than bundling the website font.

License

MIT. See LICENSE.

About

Ctrl+P fuzzy command palette for Omarchy plugins

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ilyaZar/plugin-control: Ctrl+P fuzzy command palette for Omarchy plugins · GitHub
Skip to content

Repository files navigation

Plugin Control

Plugin Control gives Omarchy Quattro a command palette to find plugins and choose what to do: add, remove, enable, disable, or update them.

Plugin Control command palette

Install

omarchy plugin add https://github.com/ilyaZar/plugin-control.git --enable

Click the bar icon to open Plugin Control. Plugin manifests cannot add global shortcuts. For a keyboard shortcut, add this binding to your repo-managed or user-owned bindings.lua:

o.bind(
"CTRL + P",
"Plugin Control",
"omarchy-shell shell toggle io.github.ilyazar.plugin-control '{}'"
)

This uses plain Ctrl+p, so it replaces the usual application shortcut while the binding is active. Change "CTRL + P" if that gets in your way.

Use

Search and actions

Plugin Control opens from a local cache, with no network or Git work. Press Ctrl+r for fresh catalog and marketplace data.

Search by plugin name, ID, description, author, or tag. Press Enter to see that plugin's available actions. Search and direct commands use the same menu:

  • built-in plugins show Enable or Disable when Omarchy allows that action
  • added user plugins show Update, Enable, Disable, or Remove when available
  • available user plugins show Add
  • inactive full bars show Enable; active full bars are left alone

Plugin Control runs every change through native omarchy plugin commands.

To narrow the list by action, use:

  • plug-add: shows plugins available through omarchy plugin add
  • plug-remove: shows removable local plugins
  • plug-enable: shows disabled switchable plugins
  • plug-disable: shows enabled switchable plugins
  • plug-update: checks first, then shows safely updateable plugins

Type add, remove, enable, disable, or update to find the matching command. Press Tab or Enter to complete it. Text after the colon filters the plugins. Completing plug-update: starts a read-only update check.

Updates

Ctrl+u opens plug-update: and checks each added Git plugin against upstream HEAD. It shows only safe fast-forward updates and changes nothing. Choosing Update runs:

omarchy plugin update <plugin-id> --yes && omarchy restart shell

After Add, or an Update that changed a plugin, Plugin Control restarts Omarchy Shell once. If that fails, the plugin change stays and Plugin Control tells you to run omarchy restart shell.

Update is dimmed when Plugin Control cannot prove it is safe. This includes copied plugins, development symlinks, dirty checkouts, unsupported Git layouts, and ahead or diverged histories. Leave it selected for one second, or press Enter, to see why. If one check fails, the other results still appear with a yellow warning. A failed scan is red.

Useful keys

KeysAction
Ctrl+p or EscapeClose from the plugin list
Up, Down, Page Up, Page DownMove the selection
Home or EndJump to the first or last result
EnterComplete or confirm
TabComplete the selected command
Ctrl+BackspaceRemove the previous word
Ctrl+uCheck for updateable plugins
Ctrl+rRefresh catalog and metrics
Ctrl+iShow read-only plugin details
Ctrl+wOpen the marketplace page
Ctrl+gOpen the source repository
Ctrl+sOpen settings; Escape returns
Escape or q in any submenuReturn directly to the plugin list

The status row shows actions on the left and the catalog on the right. Yellow means work or a warning, green means recent success, and red means a failed action or no usable data. Hover over a warning to see the failed source and fallback.

Plugin information

Ctrl+i opens read-only details: the full description, source, repository, tags, marketplace activity, and verification state. Verification reflects the marketplace checks for the listed commit; it is not a security audit.

Marketplace previews download on demand and are cached as PNGs for the shell. Click the card for the full preview. Press Enter or Space for the details, or Escape or q for the plugin list. Ctrl+r refreshes marketplace totals; failed requests keep the last valid values, and missing values are not shown as zero.

Demo

Click either preview to play the video.

Add, remove, enable, and disable plugins

Add, remove, enable, and disable

Manage the btop plugin from one action menu.

Refresh the catalog and configure Plugin Control

Refresh and settings

Refresh the catalog, change tray settings, and cleanly reinstall Plugin Control.

Start and stop

These commands turn Plugin Control itself on or off. Tray options only control whether its bar icon is visible:

~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start --tray-hidden
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control stop

The helper is not on PATH. Run it by full path, or run bin/plugin-control from the checkout. start uses the tray setting from your configuration. A tray flag overrides that setting. stop turns off the whole plugin.

Settings

Press Ctrl+s for plugin settings, keybindings, clean removal, and Cancel / Back. Move with j/k, the arrow keys, or the mouse. Press Enter to choose, or Escape or q to return to the plugin list.

~/.config/omarchy/ilyazar.plugin-control/channels.yaml
~/.config/hypr/bindings.lua
settings:
tray-icon-hidden: falsebackground_dim: false

Plugin Control never rewrites your Ctrl+p binding. Saving valid YAML updates the tray and background settings at once. Set background_dim to true to dim the workspace behind the palette.

Only schema 2 is accepted. Invalid YAML stays untouched. Plugin Control reports the rejected value and uses the last valid configuration, or the shipped defaults for a recoverable first-run error.

Dependencies

  • Omarchy Quattro and its shell
  • Bash, curl, Git, and jq
  • Ruby with Psych
  • util-linux (flock and setsid)
  • GNU coreutils (timeout)
  • omarchy-launch-terminal for terminal adds

Plugin Control installs no packages and requests no elevated privileges.

Remove

Use plug-remove: for native removal. To remove the saved data as well, choose Cleanly remove Plugin Control and user data from Settings. Then pick one:

  • Yes (preserve user data) uses native removal
  • Yes (delete user data) removes namespaced state and the recognized Plugin Control keybinding before native removal
  • No / abort makes no changes

The native command is:

omarchy plugin remove io.github.ilyazar.plugin-control

Native removal preserves:

  • settings: ~/.config/omarchy/ilyazar.plugin-control/
  • cache: ~/.cache/omarchy/ilyazar.plugin-control/
  • state: ~/.local/state/omarchy/ilyazar.plugin-control/

Clean removal deletes these paths and the recognized Plugin Control binding.

Development

For plugin development, keep the source outside ~/.config/omarchy/plugins/<plugin-id> and symlink it into that path. Plugin Control does not manage the source behind the symlink. Update leaves the checkout alone, and Remove deletes only the symlink.

tests/all.sh
shellcheck bin/plugin-control scripts/*.sh tests/*.sh
omarchy plugin validate .

Official Marketplace design

Kudos where Kudos is due: the detail view follows the icon language, activity rules, and semantic colors of @HANCORE-linux's MIT-licensed Omarchy Plugin Marketplace. It uses Omarchy's installed Nerd Font rather than bundling the website font.

License

MIT. See LICENSE.

About

Ctrl+P fuzzy command palette for Omarchy plugins

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - ilyaZar/plugin-control: Ctrl+P fuzzy command palette for Omarchy plugins · GitHub
Skip to content

Repository files navigation

Plugin Control

Plugin Control gives Omarchy Quattro a command palette to find plugins and choose what to do: add, remove, enable, disable, or update them.

Plugin Control command palette

Install

omarchy plugin add https://github.com/ilyaZar/plugin-control.git --enable

Click the bar icon to open Plugin Control. Plugin manifests cannot add global shortcuts. For a keyboard shortcut, add this binding to your repo-managed or user-owned bindings.lua:

o.bind(
"CTRL + P",
"Plugin Control",
"omarchy-shell shell toggle io.github.ilyazar.plugin-control '{}'"
)

This uses plain Ctrl+p, so it replaces the usual application shortcut while the binding is active. Change "CTRL + P" if that gets in your way.

Use

Search and actions

Plugin Control opens from a local cache, with no network or Git work. Press Ctrl+r for fresh catalog and marketplace data.

Search by plugin name, ID, description, author, or tag. Press Enter to see that plugin's available actions. Search and direct commands use the same menu:

  • built-in plugins show Enable or Disable when Omarchy allows that action
  • added user plugins show Update, Enable, Disable, or Remove when available
  • available user plugins show Add
  • inactive full bars show Enable; active full bars are left alone

Plugin Control runs every change through native omarchy plugin commands.

To narrow the list by action, use:

  • plug-add: shows plugins available through omarchy plugin add
  • plug-remove: shows removable local plugins
  • plug-enable: shows disabled switchable plugins
  • plug-disable: shows enabled switchable plugins
  • plug-update: checks first, then shows safely updateable plugins

Type add, remove, enable, disable, or update to find the matching command. Press Tab or Enter to complete it. Text after the colon filters the plugins. Completing plug-update: starts a read-only update check.

Updates

Ctrl+u opens plug-update: and checks each added Git plugin against upstream HEAD. It shows only safe fast-forward updates and changes nothing. Choosing Update runs:

omarchy plugin update <plugin-id> --yes && omarchy restart shell

After Add, or an Update that changed a plugin, Plugin Control restarts Omarchy Shell once. If that fails, the plugin change stays and Plugin Control tells you to run omarchy restart shell.

Update is dimmed when Plugin Control cannot prove it is safe. This includes copied plugins, development symlinks, dirty checkouts, unsupported Git layouts, and ahead or diverged histories. Leave it selected for one second, or press Enter, to see why. If one check fails, the other results still appear with a yellow warning. A failed scan is red.

Useful keys

KeysAction
Ctrl+p or EscapeClose from the plugin list
Up, Down, Page Up, Page DownMove the selection
Home or EndJump to the first or last result
EnterComplete or confirm
TabComplete the selected command
Ctrl+BackspaceRemove the previous word
Ctrl+uCheck for updateable plugins
Ctrl+rRefresh catalog and metrics
Ctrl+iShow read-only plugin details
Ctrl+wOpen the marketplace page
Ctrl+gOpen the source repository
Ctrl+sOpen settings; Escape returns
Escape or q in any submenuReturn directly to the plugin list

The status row shows actions on the left and the catalog on the right. Yellow means work or a warning, green means recent success, and red means a failed action or no usable data. Hover over a warning to see the failed source and fallback.

Plugin information

Ctrl+i opens read-only details: the full description, source, repository, tags, marketplace activity, and verification state. Verification reflects the marketplace checks for the listed commit; it is not a security audit.

Marketplace previews download on demand and are cached as PNGs for the shell. Click the card for the full preview. Press Enter or Space for the details, or Escape or q for the plugin list. Ctrl+r refreshes marketplace totals; failed requests keep the last valid values, and missing values are not shown as zero.

Demo

Click either preview to play the video.

Add, remove, enable, and disable plugins

Add, remove, enable, and disable

Manage the btop plugin from one action menu.

Refresh the catalog and configure Plugin Control

Refresh and settings

Refresh the catalog, change tray settings, and cleanly reinstall Plugin Control.

Start and stop

These commands turn Plugin Control itself on or off. Tray options only control whether its bar icon is visible:

~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start --tray-hidden
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control stop

The helper is not on PATH. Run it by full path, or run bin/plugin-control from the checkout. start uses the tray setting from your configuration. A tray flag overrides that setting. stop turns off the whole plugin.

Settings

Press Ctrl+s for plugin settings, keybindings, clean removal, and Cancel / Back. Move with j/k, the arrow keys, or the mouse. Press Enter to choose, or Escape or q to return to the plugin list.

~/.config/omarchy/ilyazar.plugin-control/channels.yaml
~/.config/hypr/bindings.lua
settings:
tray-icon-hidden: falsebackground_dim: false

Plugin Control never rewrites your Ctrl+p binding. Saving valid YAML updates the tray and background settings at once. Set background_dim to true to dim the workspace behind the palette.

Only schema 2 is accepted. Invalid YAML stays untouched. Plugin Control reports the rejected value and uses the last valid configuration, or the shipped defaults for a recoverable first-run error.

Dependencies

  • Omarchy Quattro and its shell
  • Bash, curl, Git, and jq
  • Ruby with Psych
  • util-linux (flock and setsid)
  • GNU coreutils (timeout)
  • omarchy-launch-terminal for terminal adds

Plugin Control installs no packages and requests no elevated privileges.

Remove

Use plug-remove: for native removal. To remove the saved data as well, choose Cleanly remove Plugin Control and user data from Settings. Then pick one:

  • Yes (preserve user data) uses native removal
  • Yes (delete user data) removes namespaced state and the recognized Plugin Control keybinding before native removal
  • No / abort makes no changes

The native command is:

omarchy plugin remove io.github.ilyazar.plugin-control

Native removal preserves:

  • settings: ~/.config/omarchy/ilyazar.plugin-control/
  • cache: ~/.cache/omarchy/ilyazar.plugin-control/
  • state: ~/.local/state/omarchy/ilyazar.plugin-control/

Clean removal deletes these paths and the recognized Plugin Control binding.

Development

For plugin development, keep the source outside ~/.config/omarchy/plugins/<plugin-id> and symlink it into that path. Plugin Control does not manage the source behind the symlink. Update leaves the checkout alone, and Remove deletes only the symlink.

tests/all.sh
shellcheck bin/plugin-control scripts/*.sh tests/*.sh
omarchy plugin validate .

Official Marketplace design

Kudos where Kudos is due: the detail view follows the icon language, activity rules, and semantic colors of @HANCORE-linux's MIT-licensed Omarchy Plugin Marketplace. It uses Omarchy's installed Nerd Font rather than bundling the website font.

License

MIT. See LICENSE.

About

Ctrl+P fuzzy command palette for Omarchy plugins

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ilyaZar/plugin-control: Ctrl+P fuzzy command palette for Omarchy plugins · GitHub
Skip to content

Repository files navigation

Plugin Control

Plugin Control gives Omarchy Quattro a command palette to find plugins and choose what to do: add, remove, enable, disable, or update them.

Plugin Control command palette

Install

omarchy plugin add https://github.com/ilyaZar/plugin-control.git --enable

Click the bar icon to open Plugin Control. Plugin manifests cannot add global shortcuts. For a keyboard shortcut, add this binding to your repo-managed or user-owned bindings.lua:

o.bind(
"CTRL + P",
"Plugin Control",
"omarchy-shell shell toggle io.github.ilyazar.plugin-control '{}'"
)

This uses plain Ctrl+p, so it replaces the usual application shortcut while the binding is active. Change "CTRL + P" if that gets in your way.

Use

Search and actions

Plugin Control opens from a local cache, with no network or Git work. Press Ctrl+r for fresh catalog and marketplace data.

Search by plugin name, ID, description, author, or tag. Press Enter to see that plugin's available actions. Search and direct commands use the same menu:

  • built-in plugins show Enable or Disable when Omarchy allows that action
  • added user plugins show Update, Enable, Disable, or Remove when available
  • available user plugins show Add
  • inactive full bars show Enable; active full bars are left alone

Plugin Control runs every change through native omarchy plugin commands.

To narrow the list by action, use:

  • plug-add: shows plugins available through omarchy plugin add
  • plug-remove: shows removable local plugins
  • plug-enable: shows disabled switchable plugins
  • plug-disable: shows enabled switchable plugins
  • plug-update: checks first, then shows safely updateable plugins

Type add, remove, enable, disable, or update to find the matching command. Press Tab or Enter to complete it. Text after the colon filters the plugins. Completing plug-update: starts a read-only update check.

Updates

Ctrl+u opens plug-update: and checks each added Git plugin against upstream HEAD. It shows only safe fast-forward updates and changes nothing. Choosing Update runs:

omarchy plugin update <plugin-id> --yes && omarchy restart shell

After Add, or an Update that changed a plugin, Plugin Control restarts Omarchy Shell once. If that fails, the plugin change stays and Plugin Control tells you to run omarchy restart shell.

Update is dimmed when Plugin Control cannot prove it is safe. This includes copied plugins, development symlinks, dirty checkouts, unsupported Git layouts, and ahead or diverged histories. Leave it selected for one second, or press Enter, to see why. If one check fails, the other results still appear with a yellow warning. A failed scan is red.

Useful keys

KeysAction
Ctrl+p or EscapeClose from the plugin list
Up, Down, Page Up, Page DownMove the selection
Home or EndJump to the first or last result
EnterComplete or confirm
TabComplete the selected command
Ctrl+BackspaceRemove the previous word
Ctrl+uCheck for updateable plugins
Ctrl+rRefresh catalog and metrics
Ctrl+iShow read-only plugin details
Ctrl+wOpen the marketplace page
Ctrl+gOpen the source repository
Ctrl+sOpen settings; Escape returns
Escape or q in any submenuReturn directly to the plugin list

The status row shows actions on the left and the catalog on the right. Yellow means work or a warning, green means recent success, and red means a failed action or no usable data. Hover over a warning to see the failed source and fallback.

Plugin information

Ctrl+i opens read-only details: the full description, source, repository, tags, marketplace activity, and verification state. Verification reflects the marketplace checks for the listed commit; it is not a security audit.

Marketplace previews download on demand and are cached as PNGs for the shell. Click the card for the full preview. Press Enter or Space for the details, or Escape or q for the plugin list. Ctrl+r refreshes marketplace totals; failed requests keep the last valid values, and missing values are not shown as zero.

Demo

Click either preview to play the video.

Add, remove, enable, and disable plugins

Add, remove, enable, and disable

Manage the btop plugin from one action menu.

Refresh the catalog and configure Plugin Control

Refresh and settings

Refresh the catalog, change tray settings, and cleanly reinstall Plugin Control.

Start and stop

These commands turn Plugin Control itself on or off. Tray options only control whether its bar icon is visible:

~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start --tray-hidden
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control stop

The helper is not on PATH. Run it by full path, or run bin/plugin-control from the checkout. start uses the tray setting from your configuration. A tray flag overrides that setting. stop turns off the whole plugin.

Settings

Press Ctrl+s for plugin settings, keybindings, clean removal, and Cancel / Back. Move with j/k, the arrow keys, or the mouse. Press Enter to choose, or Escape or q to return to the plugin list.

~/.config/omarchy/ilyazar.plugin-control/channels.yaml
~/.config/hypr/bindings.lua
settings:
tray-icon-hidden: falsebackground_dim: false

Plugin Control never rewrites your Ctrl+p binding. Saving valid YAML updates the tray and background settings at once. Set background_dim to true to dim the workspace behind the palette.

Only schema 2 is accepted. Invalid YAML stays untouched. Plugin Control reports the rejected value and uses the last valid configuration, or the shipped defaults for a recoverable first-run error.

Dependencies

  • Omarchy Quattro and its shell
  • Bash, curl, Git, and jq
  • Ruby with Psych
  • util-linux (flock and setsid)
  • GNU coreutils (timeout)
  • omarchy-launch-terminal for terminal adds

Plugin Control installs no packages and requests no elevated privileges.

Remove

Use plug-remove: for native removal. To remove the saved data as well, choose Cleanly remove Plugin Control and user data from Settings. Then pick one:

  • Yes (preserve user data) uses native removal
  • Yes (delete user data) removes namespaced state and the recognized Plugin Control keybinding before native removal
  • No / abort makes no changes

The native command is:

omarchy plugin remove io.github.ilyazar.plugin-control

Native removal preserves:

  • settings: ~/.config/omarchy/ilyazar.plugin-control/
  • cache: ~/.cache/omarchy/ilyazar.plugin-control/
  • state: ~/.local/state/omarchy/ilyazar.plugin-control/

Clean removal deletes these paths and the recognized Plugin Control binding.

Development

For plugin development, keep the source outside ~/.config/omarchy/plugins/<plugin-id> and symlink it into that path. Plugin Control does not manage the source behind the symlink. Update leaves the checkout alone, and Remove deletes only the symlink.

tests/all.sh
shellcheck bin/plugin-control scripts/*.sh tests/*.sh
omarchy plugin validate .

Official Marketplace design

Kudos where Kudos is due: the detail view follows the icon language, activity rules, and semantic colors of @HANCORE-linux's MIT-licensed Omarchy Plugin Marketplace. It uses Omarchy's installed Nerd Font rather than bundling the website font.

License

MIT. See LICENSE.

About

Ctrl+P fuzzy command palette for Omarchy plugins

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - ilyaZar/plugin-control: Ctrl+P fuzzy command palette for Omarchy plugins · GitHub
Skip to content

Repository files navigation

Plugin Control

Plugin Control gives Omarchy Quattro a command palette to find plugins and choose what to do: add, remove, enable, disable, or update them.

Plugin Control command palette

Install

omarchy plugin add https://github.com/ilyaZar/plugin-control.git --enable

Click the bar icon to open Plugin Control. Plugin manifests cannot add global shortcuts. For a keyboard shortcut, add this binding to your repo-managed or user-owned bindings.lua:

o.bind(
"CTRL + P",
"Plugin Control",
"omarchy-shell shell toggle io.github.ilyazar.plugin-control '{}'"
)

This uses plain Ctrl+p, so it replaces the usual application shortcut while the binding is active. Change "CTRL + P" if that gets in your way.

Use

Search and actions

Plugin Control opens from a local cache, with no network or Git work. Press Ctrl+r for fresh catalog and marketplace data.

Search by plugin name, ID, description, author, or tag. Press Enter to see that plugin's available actions. Search and direct commands use the same menu:

  • built-in plugins show Enable or Disable when Omarchy allows that action
  • added user plugins show Update, Enable, Disable, or Remove when available
  • available user plugins show Add
  • inactive full bars show Enable; active full bars are left alone

Plugin Control runs every change through native omarchy plugin commands.

To narrow the list by action, use:

  • plug-add: shows plugins available through omarchy plugin add
  • plug-remove: shows removable local plugins
  • plug-enable: shows disabled switchable plugins
  • plug-disable: shows enabled switchable plugins
  • plug-update: checks first, then shows safely updateable plugins

Type add, remove, enable, disable, or update to find the matching command. Press Tab or Enter to complete it. Text after the colon filters the plugins. Completing plug-update: starts a read-only update check.

Updates

Ctrl+u opens plug-update: and checks each added Git plugin against upstream HEAD. It shows only safe fast-forward updates and changes nothing. Choosing Update runs:

omarchy plugin update <plugin-id> --yes && omarchy restart shell

After Add, or an Update that changed a plugin, Plugin Control restarts Omarchy Shell once. If that fails, the plugin change stays and Plugin Control tells you to run omarchy restart shell.

Update is dimmed when Plugin Control cannot prove it is safe. This includes copied plugins, development symlinks, dirty checkouts, unsupported Git layouts, and ahead or diverged histories. Leave it selected for one second, or press Enter, to see why. If one check fails, the other results still appear with a yellow warning. A failed scan is red.

Useful keys

KeysAction
Ctrl+p or EscapeClose from the plugin list
Up, Down, Page Up, Page DownMove the selection
Home or EndJump to the first or last result
EnterComplete or confirm
TabComplete the selected command
Ctrl+BackspaceRemove the previous word
Ctrl+uCheck for updateable plugins
Ctrl+rRefresh catalog and metrics
Ctrl+iShow read-only plugin details
Ctrl+wOpen the marketplace page
Ctrl+gOpen the source repository
Ctrl+sOpen settings; Escape returns
Escape or q in any submenuReturn directly to the plugin list

The status row shows actions on the left and the catalog on the right. Yellow means work or a warning, green means recent success, and red means a failed action or no usable data. Hover over a warning to see the failed source and fallback.

Plugin information

Ctrl+i opens read-only details: the full description, source, repository, tags, marketplace activity, and verification state. Verification reflects the marketplace checks for the listed commit; it is not a security audit.

Marketplace previews download on demand and are cached as PNGs for the shell. Click the card for the full preview. Press Enter or Space for the details, or Escape or q for the plugin list. Ctrl+r refreshes marketplace totals; failed requests keep the last valid values, and missing values are not shown as zero.

Demo

Click either preview to play the video.

Add, remove, enable, and disable plugins

Add, remove, enable, and disable

Manage the btop plugin from one action menu.

Refresh the catalog and configure Plugin Control

Refresh and settings

Refresh the catalog, change tray settings, and cleanly reinstall Plugin Control.

Start and stop

These commands turn Plugin Control itself on or off. Tray options only control whether its bar icon is visible:

~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control start --tray-hidden
~/.config/omarchy/plugins/io.github.ilyazar.plugin-control/bin/plugin-control stop

The helper is not on PATH. Run it by full path, or run bin/plugin-control from the checkout. start uses the tray setting from your configuration. A tray flag overrides that setting. stop turns off the whole plugin.

Settings

Press Ctrl+s for plugin settings, keybindings, clean removal, and Cancel / Back. Move with j/k, the arrow keys, or the mouse. Press Enter to choose, or Escape or q to return to the plugin list.

~/.config/omarchy/ilyazar.plugin-control/channels.yaml
~/.config/hypr/bindings.lua
settings:
tray-icon-hidden: falsebackground_dim: false

Plugin Control never rewrites your Ctrl+p binding. Saving valid YAML updates the tray and background settings at once. Set background_dim to true to dim the workspace behind the palette.

Only schema 2 is accepted. Invalid YAML stays untouched. Plugin Control reports the rejected value and uses the last valid configuration, or the shipped defaults for a recoverable first-run error.

Dependencies

  • Omarchy Quattro and its shell
  • Bash, curl, Git, and jq
  • Ruby with Psych
  • util-linux (flock and setsid)
  • GNU coreutils (timeout)
  • omarchy-launch-terminal for terminal adds

Plugin Control installs no packages and requests no elevated privileges.

Remove

Use plug-remove: for native removal. To remove the saved data as well, choose Cleanly remove Plugin Control and user data from Settings. Then pick one:

  • Yes (preserve user data) uses native removal
  • Yes (delete user data) removes namespaced state and the recognized Plugin Control keybinding before native removal
  • No / abort makes no changes

The native command is:

omarchy plugin remove io.github.ilyazar.plugin-control

Native removal preserves:

  • settings: ~/.config/omarchy/ilyazar.plugin-control/
  • cache: ~/.cache/omarchy/ilyazar.plugin-control/
  • state: ~/.local/state/omarchy/ilyazar.plugin-control/

Clean removal deletes these paths and the recognized Plugin Control binding.

Development

For plugin development, keep the source outside ~/.config/omarchy/plugins/<plugin-id> and symlink it into that path. Plugin Control does not manage the source behind the symlink. Update leaves the checkout alone, and Remove deletes only the symlink.

tests/all.sh
shellcheck bin/plugin-control scripts/*.sh tests/*.sh
omarchy plugin validate .

Official Marketplace design

Kudos where Kudos is due: the detail view follows the icon language, activity rules, and semantic colors of @HANCORE-linux's MIT-licensed Omarchy Plugin Marketplace. It uses Omarchy's installed Nerd Font rather than bundling the website font.

License

MIT. See LICENSE.

About

Ctrl+P fuzzy command palette for Omarchy plugins

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages