Releases: ryekee/Napoleon
Releases · ryekee/Napoleon
Release list
Napoleon 0.1.0
The first public build of Napoleon — a keyboard window switcher for macOS that shows you a
live thumbnail of every window instead of an application icon.
macOS's ⌘Tab switches applications. Napoleon switches windows, and shows you what
each one actually looks like.
What's in it
- Thumbnail previews of every window, captured with ScreenCaptureKit
- Two rebindable hotkeys — ⌘Tab for all windows, ⌘` for the current app's windows
- Quick-switch stays quick — tap and release faster than the display delay and it jumps
straight to your previous window, no overlay - Search by app name or window title; Chinese titles match by Pinyin (
gouwu→ 购物清单) - Full-screen aware — full-screen apps are listed, and while you're inside one your
desktop windows stay reachable so you can get back out - Keyboard, mouse, or both — Tab/⇧Tab, arrow keys, hover, click, Esc
- Four languages — English, 简体中文, 繁體中文, 日本語
- Settings for card size, window titles, light/dark, display delay, scope, thumbnail cache
budget, and launch at login
Requirements
macOS 14 (Sonoma) or later.
- Accessibility — required. Without it Napoleon can't intercept the hotkey or focus
windows. - Screen Recording — optional. Without it the switcher still works, but cards fall back
to app icons instead of thumbnails.
Installing
This build is signed but not notarized, so Gatekeeper will refuse it on first launch.
- Unzip and move
Napoleon.appto/Applications - Try to open it — macOS will say it can't verify the developer
- Go to System Settings → Privacy & Security, scroll down, and click Open Anyway
- Grant Accessibility when prompted, then relaunch Napoleon (the event tap can only
be installed at startup) - Optionally grant Screen Recording for thumbnails
If you'd rather not run an unnotarized binary, build from source — it's four commands, see
the README.
Known rough edges
- Windows on another Space that Accessibility can't reach are focused at app level, so a
multi-window app may not land on the exact window you picked - With a second display parked in a full-screen space for a long time, the "escape" list can
go stale until you visit a desktop again - Unusual toolkits (Java/Swing, SDL games) expose windows inconsistently through
Accessibility
Licensed under the GNU AGPL v3.0.