Repository navigation
v2.17.0 — Settings & License Agreement
Nex 2.17.0 is a major UI release: a fully redesigned Settings window with premium monochrome styling, custom dropdowns, native hotkey capture, and an overlay footer with a settings button — plus an MIT license agreement in the installer.
What changed
- Settings window redesign: completely rebuilt with a left-nav + right-content layout, custom title bar, and monochrome accent theme. The window is now 790x560 with a 42px custom title bar (minimize/close buttons preserved).
- Custom dropdown components: all
<select>elements replaced with custom popup dropdowns featuring checkmarks, keyboard navigation, scroll support, and fixed positioning. - Native hotkey capture: settings page uses WM_INPUT recorder for direct hotkey capture instead of relying on modifier key state polling.
- Overlay footer settings button: a gear icon in the overlay footer opens the Settings window directly. Hidden in quick-launch mode.
- Hotkey moved to General page: relocated under the top group with Launch at Startup for better discoverability.
- MIT license agreement: installer now shows the MIT license for user acceptance before installation.
- Updater shows installer window: "Check for Updates" now displays the full installer UI so users can review and accept the license.
Settings Fields
- Grid View, Show Files/Folders, Launch at Startup
- Quick Launch: enable, auto-fill, max items
- Search: mode default, DSL syntax, web search provider, max results, index size cap
- Hotkey (with native capture chip)
Overlay Footer
- Hints left-aligned, settings gear icon right-aligned
- Quick-launch mode: footer hidden (6px height spacer provides bottom gap)
- Normal mode: 46px footer with hints and settings button
Bug Fixes
- Toggle off background: fixed to #1A1A1A to contrast with row background #242424
- Focus outline removed: Cancel button no longer shows blue focus ring
- Row background fixed: #242424 never changes on hover
- Footer modes: proper idle/ql/websearch class toggling prevents layout jumps
- Settings IPC: "settings" message from overlay correctly opens the Settings window
Architecture
- Settings snapshot: all config fields exposed in settings snapshot JSON for read/write via IPC
- SearchMode/WebSearchProvider enums: added
as_str()andparse()methods for config serialization - Custom dropdown data: options passed via
data-optionsJSON attribute on select elements - FIELDS array: settings.js supports
"checked","valueNumber","valueSelect"field kinds
Commit Log
b77be68fix(updater): show installer window for license agreementa6db8a6feat(installer): add MIT license agreement to setup0085d80docs: clarify git author identity usage for all git operations8af8adestyle(overlay): footer height 46px, remove idle margin-topdff4722style(overlay): hints/settings icon top 50%, restore idle margin-top 6px, remove websearch JSd06e325fix(overlay): remove idle footer margin-top 6px, ql height provides gap15147e8style(overlay): restore footer margin-top 6px78086b9AGENTS.md fixf16ef67fix(overlay): remove 6px footer margin in web search only mode6726e4ddocs re-ajusment50efbe0style(overlay): hint label brighter (text color), remove hint box-shadow2f2e2a4fix(settings): remove focus outline on Cancel buttona1104ecstyle(overlay): hints + settings icon both top 40% alignment0cba82fstyle(overlay): hints left-aligned, hide settings icon in ql modeb87411fstyle(overlay): hints centered via translate, settings icon right-aligned813d7c6ui(overlay): footer settings button, remove move hint91c4ac4docs: simplify commit author rule in AGENTS.md849e2c9docs: add git commit author rule to AGENTS.md199b8f9style(settings): remove group-rows outer border, keep row dividers10f0c4fui(settings): hint pills with shadows, remove dot separators36cfae0style(settings): group-label left padding 8px9f70b33style(settings): group-label matches row name style, +4px padding/spacing428161estyle(settings): group-label margin-bottom 8px2f227fcstyle(settings): consistent 6px spacing between all groups8a75e0cstyle(settings): content padding 6px, group padding 6px, labels capitalized76346a5ui(settings): move hotkey + launch at startup above Display, remove group headings8543c8astyle(settings): row bg fixed #242424, no hover change0d3124dui(settings): custom dropdown component replacing native selects2e25974ui(settings): row height +48px, remove redundant hintsc5b9c18fix(settings): white toggle knob off, polished dropdown stylingfd0f625fix(settings): toggle off bg #1A1A1A to contrast with row #24242454269e0ui(settings): fix dropdowns, move hotkey to general, unify bg colors3dd09a8style(settings): uniform 6px group padding, remove group dividers33581d3feat(settings): add web search provider dropdown26d33dcfeat(settings): add search mode default and DSL toggle106c0c2feat(settings): add quick launch auto-fill toggle9c05515feat(settings): add show files/folders, launch at startup19c52dbui(settings): premium monochrome redesign — Inter font, hotkey chips, shell layout394f440ui(settings): monochrome accent, premium inputs, window resize 790x560bf0fac0ui: overlay spacing fixes, footer modes, spawn position, focus ringsc3fdb72ui(settings): left-nav + right-content layout with tab navigationcec05b4ui(settings): custom title bar with native-style close/minimize29795a3ui(settings): use native title bar, keep 2-column layoutcbd4794ui(settings): 2-column layout with custom title barabead18ui(settings): redesign with grouped sectionsf5ede97fix(settings): input max value, dead code, Esc cancel6ca4d53fix(hotkey): force full re-register when target_is_win changes mid-run6b6168dfix(overlay): FocusReassert only fires when visible and unfocused3338b36fix(overlay): cancel deferred hide on Show/Hide to prevent rapid toggle race92ce2e6fix(overlay): reject stale Painted when Hide cleared rowsd06ce2afix(overlay): prevent focus loss from redundant force_foreground calls57b947bfix(hotkey): rearm raw input sink on mid-run hotkey change + delayed focus re-assertion055a47afix(hotkey): nex owns detection, helper assists Win focus over elevated windows6854445refactor(hotkey): nex owns all detection — helper out of the hot path5418643fix(hotkey): live-update diagnostics + transient state resetsefd6635feat(settings): native hotkey capture via WM_INPUT recorder16c196afeat(settings): theme-synced settings page058c9cffeat(settings): suppress hotkey toggle while settings open84d5450fix(host): scope focus handling to the overlay windowb53276eTray Settings item opens a second WebView window (warm hide/reopen). Read path pushes a config snapshot into the page via applySettings with a ready-handshake; write path merges, validates through config::save_to_path (auto-backup), and hot-reload applies live. v1 fields: grid_view, max_results, quick_launch enabled/max_items, index_max_items_total, hotkey.e4a9019Update README.md303d79efix(settings): read input value, not ariaValueMax