Omahub
← All plugins
P

OmaSwitch

by piyush97

Windows-style Alt-Tab overlay with MRU ordering, search, and live previews.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
52e0271
Scanned
16 hours 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

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
52e0271
Reviewed
15 hours ago

OmaSwitch is a transparent QML overlay that lists Hyprland windows, filters them, shows a live preview, and focuses the selected window. No install-time scripts, network access, obfuscation, persistence, or destructive behavior were found; the deterministic scan's 'none' rating is consistent with the code. The only minor risk is a shell command built from a compositor-provided window address, which is not realistically attacker-controlled.

  • Model.focusCommand() interpolates window.address into a `sh -c` string in Switcher.qml; if a compositor ever returned a non-hex address containing shell metacharacters it could allow command injection, though Hyprland addresses are compositor-generated hex values.
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/piyush97/omaswitch --enable
Desktop #Hyprland #quickshell #workspaces

OmaSwitch

CI License: MIT Omarchy plugin QML

A familiar Alt+Tab switcher for Omarchy—with live window previews.

OmaSwitch puts your recently used windows in one fast, keyboard-first overlay. Cycle through them with Alt+Tab, type to find one by name, and see a live preview of the highlighted window before you switch.

Write-up: OmaSwitch: The Alt+Tab Omarchy Has Been Missing

OmaSwitch showing a live terminal preview

Why you will like it

  • Recent windows first. Uses Hyprland focus history, so the window you want is usually next.
  • Preview before switching. A live preview follows the selected row instead of showing stale screenshots.
  • Made for the keyboard. Repeat Alt+Tab, search by typing, use arrows or Tab, then press Enter.
  • Stays light. Only the highlighted window gets a capture stream—never every row.
  • Fits Omarchy. Follows your active Omarchy theme and needs no daemon, packages, or privileges.

See it in action

Pick the project window without leaving the keyboard

Search or cycle through windows, then confirm with Enter (or release Alt when the compositor forwards the release event).

OmaSwitch with a project terminal preview

Check a live btop preview before switching

The preview changes with the selected row, making similarly named windows easy to distinguish.

OmaSwitch with a live btop preview

Add it to Omarchy

omarchy plugin add https://github.com/piyush97/omaswitch.git --enable

It installs in your user configuration and needs no extra package, service, or configuration file.

Live previews require Hyprland's hyprland-toplevel-export-v1 protocol. If it is unavailable, switching and search still work; the plugin simply uses its list-only layout.

Make it your Alt+Tab switcher

Omarchy binds Alt+Tab to direct cycling by default. Add this to ~/.config/hypr/bindings.lua to replace those two bindings:

hl.unbind("ALT + TAB")
hl.unbind("ALT + SHIFT + TAB")

o.bind("ALT + TAB", "OmaSwitch", "omarchy-shell shell summon piyush.omaswitch '{\"mode\":\"cycle\",\"direction\":1}'")
o.bind("ALT + SHIFT + TAB", "OmaSwitch (reverse)", "omarchy-shell shell summon piyush.omaswitch '{\"mode\":\"cycle\",\"direction\":-1}'")

Then reload Hyprland:

hyprctl reload
hyprctl configerrors

configerrors should print no errors. If you want to keep Omarchy's default bindings, bind either summon command to another key instead.

Familiar from the first keypress

Shortcut What it does
Alt+Tab Open the switcher and move to the next recent window
Alt+Shift+Tab Open the switcher and move backward
Tab, Down, Right Select the next window
Shift+Tab, Up, Left Select the previous window
Type Filter by title, application, or workspace
Backspace / Ctrl+Backspace Delete a character / word from the search
Ctrl+U Clear the search
Enter or click Focus the selected window
Esc or click outside Close without switching

To open the searchable picker directly:

omarchy-shell shell toggle piyush.omaswitch

Keep it current

omarchy plugin update piyush.omaswitch --yes

To disable or remove it:

omarchy plugin disable piyush.omaswitch
omarchy plugin remove piyush.omaswitch --yes

Troubleshooting

The plugin is not listed

omarchy-shell shell rescanPlugins
omarchy plugin list --json

Alt+Tab still directly cycles windows

Confirm that the original bindings were unbound, then run:

hyprctl reload
hyprctl configerrors
omarchy menu keybindings --print | grep -E 'ALT \+ TAB|SHIFT ALT \+ TAB|OmaSwitch'

The plugin opens without a preview

The selected window may not be capturable, or hyprland-toplevel-export-v1 may be unavailable. This is expected fallback behavior; the list remains fully usable.

The plugin reports a QML error

journalctl --user -f | grep -Ei 'piyush.omaswitch|Switcher.qml|qml.*(error|warning)'

Development

node test_model.js
omarchy plugin validate .
git diff --check

The plugin is MIT licensed; see LICENSE. It is an independent community plugin and is not affiliated with Omarchy.