Repository navigation
v2.29.0
One press, every scale
The Win key now behaves like a system key again: one press opens the panel, a second closes it, and chords stay chords. Start never opens behind the panel, Win+E opens Explorer once, and Win+Shift+S still reaches the Snipping Tool. The glass is drawn at the size it actually occupies on scaled displays, screenshots work again in the opaque modes, and deleted files stop showing up in search.
What changed
- The first press after launch opens the panel. The elevated helper and the in-app hotkey path were both acting on the same physical press; on a cold start the helper's copy arrived late enough to hide what the other path had just shown. A press now has one owner, so open-then-close on a single tap cannot happen at any timing.
- Chords stay chords. Holding Win and typing E, or Shift+S, no longer turns into a bare Win press when the key comes up. The press keeps its identity until the real release, so Win+E opens Explorer and nothing else, and Win+Shift+S reaches the Snipping Tool even with the panel focused.
- Start stays shut. Before each bare-Win toggle nex now sends a key-up that belongs to no key. Windows stops waiting for a Start gesture as soon as another key event closes the press, so the menu cannot open behind the panel. The held menu-mask key stays as the second guard.
- System hotkeys are no longer swallowed. The raw input sink had been registered with
RIDEV_NOHOTKEYS, which suppresses every registered system hotkey while nex is running. That flag is gone, so Win+Shift+S and friends behave the same with or without nex. - Glass is drawn at the right size on scaled displays. At 125% and 150% the visual was scaled a second time, so page content spilled past the right and bottom of the glass. It is composed in device pixels now and maps 1:1 at every scale.
- Screenshots capture the opaque modes again. Capture exclusion used to be set unconditionally, which hid the whole app from PrintScreen, OBS and Discord even in Black and White. Exclusion follows the material now: it applies only while the glass actually paints.
- Search stops returning deleted files. A failed Tantivy sync could leave a half-committed deletion batch answering queries. The index is dropped when a sync fails and the store-backed cache answers instead; the next rebuild reindexes from scratch.
- The chat attach button is a paperclip. It used a plus, which read as "new" next to the New conversation plus.
Notes
- Start suppression only shows up with a real keyboard; injected input skips the guards by design. This release was checked with real presses.
- The glass panel stays out of screen captures while it is painting, because its own duplication feed would otherwise contain its previous frame. Opaque panels are captured normally.
- 125% and 150% scaling were checked on the glass. Placement still follows Windows, so the panel opens on the monitor under the cursor in mixed-DPI setups.
Commit Log
f2e48ecfix(hotkey): let the elevated helper own the press when it is livee8d5310Merge branch 'master' into fix/glass-physical-compositioncd0d29ffix(hotkey): clear the focus-escape guard when a press ends as a chordc6c6908fix(hotkey): invalidate the Start gesture on every bare Win toggle97c8de5fix(helper): keep a chord a chord for the whole Win press71a816cfix(hotkey): track the Win press once for every detectore32a722fix(hotkey): drop RIDEV_NOHOTKEYS from the raw input sinkb7ef89afix(glass): compose the glass visual in device pixelsf60a113Merge branch 'fix/glass-capture-visibility'b1bfb4dfix(overlay): tie capture exclusion to the panel material0a89c7fmerge: full-frame glass perf probe3789e59perf(glass): full-frame probe, CPU submission vs GPU completionf7ab318ui: paperclip icon for the chat attach button9d9520ffix(search): never serve index entries the store has dropped