wmenu ===== WARNING: AI-GENERATED CODEBASE ------------------------------ This codebase is AI-generated and requires a human touch: review, testing, and maintenance. It is stable enough for everyday use, but has not received an independent human audit. About ----- wmenu is a small Win32 picker for newline-separated input. Pipe text into it, search the lines, and print the selected line to standard output. Input can keep arriving while the window is open; the list and search cover all loaded lines without drawing every row at once. This is a hard fork inspired by LinArcX's original wmenu. This implementation was written separately; the project name and idea come from LinArcX, not the code in this fork. See Credits below. Build ----- On Windows, install Visual Studio Build Tools with the C compiler and GNU make. Open a Developer Command Prompt in this directory, then run: make make test For the larger synthetic-input test, run `make stress`. The build is defined in Makefile; no Visual Studio project or batch launcher is needed. See HACKING for development notes. Use --- dir /b | .\wmenu.exe where.exe *.exe | .\wmenu.exe -p run: dir /b | .\wmenu.exe -c -w 800 -l 12 Options ------- -p text prompt text -e utf8|ansi|oem input/output encoding (default: utf8) -x px -y px -w px position and width -c center the window -l lines visible rows; -l-1 fills the screen (default: 5) -m multi-select (Ctrl+Enter adds; Enter finishes) -i ASCII case-insensitive matching -V vi mode; Ctrl+Alt+V toggles it -d native Windows edit shortcuts -b close when focus is lost -fn name -fs pt -fw weight font face, size, and weight -v version -h help Keys ---- Enter print selection and exit Esc exit (vi insert mode: return to normal mode) Up/Down move selection Ctrl+N/P next/previous row Ctrl+D/U page down/up Ctrl+O/I back/forward through visited searches and rows Ctrl+A/E start/end of input Ctrl+K delete to end of input Ctrl+W cut selection Ctrl+Backspace delete previous word Ctrl+Alt+V toggle vi mode Clearing the query returns to the first row. Location history keeps the latest 128 searches and row positions. Credits ------- LinArcX created the original wmenu and inspired this hard fork: https://github.com/LinArcX/wmenu The picker follows the dmenu interface from suckless: https://tools.suckless.org/dmenu/ arg.h is the suckless argument-parsing header by 20h. Its original header is left intact; the MIT/X Consortium terms are included in LICENSE. License ------- This fork's code is BSD 3-Clause licensed; see LICENSE. The third-party arg.h is MIT/X Consortium licensed; its notice is included in LICENSE. Older upstream releases and histories have their own copyright and licensing terms.