- config.py: warn and fall back to defaults on invalid keybinding
fields instead of raising an unhandled ValueError
- clipboard.py: replace check=True with manual returncode check for
a friendly error message instead of a raw traceback
- __main__.py: rename __handle_* to _handle_* (double-underscore
name mangling is meaningless at module level)
- rofi.py: check that rofi is installed before launching
- history.py: warn on corrupted history file instead of silently
returning empty
- README: fix install path (cd bw-menu/python), add name to
available keybinding fields
Replace --custom-field, --kb-accept, and --kb-custom CLI flags with a
YAML config file at $XDG_CONFIG_HOME/bw-menu/config.yaml. The config
maps rofi key names to vault fields (e.g. Return: password), making
keybinding configuration simpler and more intuitive.
Replace bw-serve/Ansible-based implementation with a clean rewrite:
- rbw CLI wrapper for listing entries and fetching credentials
- Rofi script-mode and fzf selectors with history-first sorting
- JSON-backed frecency history at ~/.cache/bw-menu/
- Clipboard support via wl-copy/xclip auto-detection
- uv + hatchling packaging with bw-menu entry point