commit e4103d0878915498a30cef1b0a2f7e3b90631f63
parent 3345bb7779ee3290e3ebebc745625838a61ed4b2
Author: Bharatvaj Hemanth <bharatvaj@yahoo.com>
Date: Tue, 13 Oct 2026 23:59:39 +0530
parent 3345bb7779ee3290e3ebebc745625838a61ed4b2
Author: Bharatvaj Hemanth <bharatvaj@yahoo.com>
Date: Tue, 13 Oct 2026 23:59:39 +0530
Document hard fork and remove inherited files
1 file changed, 67 insertions(+), 56 deletions(-)
diff --git a/README b/README @@ -3,75 +3,86 @@ wmenu WARNING: AI-GENERATED CODEBASE ------------------------------ -This AI-generated version needs human review, testing, and maintenance. -It is stable enough for everyday use, but not independently audited. +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. -A small Win32 picker for newline-separated input. Inspired by LinArcX's -original wmenu: https://github.com/LinArcX/wmenu +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 ----- -Use a Visual Studio Developer Command Prompt and run make. - -Credits -------- -Original wmenu by LinArcX; thanks for the inspiration. -This is a hard fork with a separate Win32 implementation. +On Windows, install Visual Studio Build Tools with the C compiler and GNU +make. Open a Developer Command Prompt in this directory, then run: -How it works ------------- -wmenu is a GUI filter: newline-separated stdin goes in, the selected line is printed to stdout. + make + make test -Examples: +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. -``` -dir /b | .\wmenu.exe -where.exe *.exe | .\wmenu.exe -p run: -dir /b | .\wmenu.exe -c -w 800 -l 12 -``` +Use +--- + dir /b | .\wmenu.exe + where.exe *.exe | .\wmenu.exe -p run: + dir /b | .\wmenu.exe -c -w 800 -l 12 -Useful flags: +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 -``` --p text prompt text --e utf8|ansi|oem stdin/stdout/prompt encoding; default utf8 --x px -y px -w px position and width --c center window --l lines visible list lines; -l-1 fills the screen (default 5) --m select multiple entries; Ctrl+Enter adds one, Enter finishes --i ignore ASCII case while matching --V enable vi support; Ctrl+Alt+V toggles vi mode --d use normal Windows edit shortcuts instead of emacs-ish keys --b exit when focus leaves the window --fn name -fs pt -fw weight - font face, size, and weight --v print version --h print usage -``` +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 search returns to the first row. Ctrl+O/I revisits previous -searches and selected lines; typing/refining one search is treated as one -location. History keeps the latest 128 positions. +Clearing the query returns to the first row. Location history keeps the +latest 128 searches and row positions. -Default keys: +Credits +------- +LinArcX created the original wmenu and inspired this hard fork: + https://github.com/LinArcX/wmenu -``` -Enter print selection and exit -Esc exit (vi insert mode: return to normal mode) -Up/Down move list selection -Ctrl+N/P next/previous item -Ctrl+D/U page down/up -Ctrl+O/I back/forward through visited searches and rows -Ctrl+A move to start; press again at start to select all -Ctrl+E move to end -Ctrl+K delete to end -Ctrl+W cut selection -Ctrl+Backspace delete previous word -Ctrl+Alt+V toggle vi mode -``` +The picker follows the dmenu interface from suckless: + https://tools.suckless.org/dmenu/ -See HACKING for code layout and release notes. +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 ------- -BSD 3-Clause; see LICENSE. arg.h is MIT/X Consortium licensed. +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.
: nply/wmenu