sefr 0.2.0

Terminal program for interactively opening search engines / parametric URLs.
sefr-0.2.0 is not a library.

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