sefr (Search Engine FRontend)
Terminal program for interactively opening search engines / parametric URLs.
It's kinda like surfraw but with interactive suggestions (via parsing opensearch json).
motivation
I use custom url bar search engines a lot, but browser support for them is frustrating.
- Firefox has a really obtuse way of defining them, doesn't let you specify suggestion endpoints, and still doesn't sync them.
- Chrome makes defining them easy, syncs them, but doesn't let you specify suggestion endpoints.
- Vivaldi makes defining them easy, lets you specify suggestion endpoints, but doesn't sync them.
e.g. in stock firefox, you can't create a search engine that, when you type "r foo" in your url bar, automatically goes to "reddit.com/r/foo". You have to manually write the URL, and you don't even get completions!
This is meant to be a customizable crossplat solution, and since it uses your default browser (details), I hope to fit it into my workflow with a global keybinding.
running
Clone it, install the Rust toolchain, and run cargo run
in the directory.
config
Generates a TOML file in the the config dir provided by the directories crate (the usual ones, e.g. ~/.config/sefr/config.toml on linux). Should be pretty straightforward to add new search engines but sorry if I break the format between development versions.
progress
Currently messy but it's working.
- Prompt (albeit with fake cursor)
- Suggestions request / json parse
- Definable engines with prefixes, prompts, and endpoints
- Browser launching
- Selection of suggestions w/ prefix edge cases
- TOML file config