#search #search-query #cross-platform #url #bangs #cross-browser #cross-search-engine

app localbang

Cross-platform, cross-browser, cross-search-engine duckduckgo-like bangs

8 unstable releases (3 breaking)

0.4.0 Sep 28, 2021
0.3.3 Sep 28, 2021
0.2.0 Sep 28, 2021
0.1.1 Sep 27, 2021

#35 in #search-query

MIT license

13KB
210 lines

localbang

Cross-platform, cross-browser, cross-search-engine duckduckgo-like bangs

What are "bangs"??

Bangs are a way to define where to search inside the query itself. For example you could have a bang with the keyword "!gh" and the url "https://github.com/search?q=%s". Now, whenever your search query contains "!gh" the rest of the query will replace the "%s" in the url.

Example:

"!gh localbang" will result in "https://github.com/search?q=localbang"

Installation

Package Manger

AUR

yay -S localbang

Binary release

Download the latest binary release from here and place it in a folder thats in $PATH e.g. /usr/local/bin.

Cargo intall

This is easier, but you have to build the binary yourself.

cargo install localbang

DIY

git clone https://github.com/jakob-kruse/localbang
cd localbang
cargo build --release

The localbang binary will be place inside target/release;

Usage

localbang -s <shortcuts_file> -e "https://google.com/search?q=%s" -h "127.0.0.1" -p 8000

This will start a local webserver on port 8000. Every path (e.g. http://localhost:8000/search?q=foo) will be redirected to the search engine (with the query "foo") provided as a second argument (defaults to google search).

Sysyemd

You can find a unit file in localbang.service that can be used to start localbang in systemd. Place this in /etc/systemd/user or ~/.config/systemd/user/ and then systemctl --user enable --now localbang.service to enable it.

Shortcuts file

The shortcuts file defined the bangs, which are available. It is a CSV file with two rows: the keyword and the url. Examle Shortcuts File

keyword

This is the word or letter (could be anything really) that will be used to trigger the search engine specified in the url column.

url

The search engine to use for the bang/keyword. This must include a %s as the placeholder for the query.

Browser integration

Note: Opensearch Integration is planned for the future.

Chrome

In Chrome you can directly add a custom search engine.

  • Open the settings
  • Select "Search engine" on the left
  • Click "Manage search engines"
  • Click "Add"
  • Enter the name (e.g. "localbang")
  • Enter any keyword. This only matters, if you are not going to use localbang as the default engine.
  • Enter the url http://localhost:8000/search?q=%s
  • Localbang should appear in the list under "Other search engines"
  • (optional) Click the three dot menu and click "Make default", otherwise use the provided keyword.

Firefox

The easiest way is to use the Add custom search engine extension.

  • Click the extension icon
  • Enter any name (e.g. localbang)
  • Enter the URL http://localhost:8000/search?q=%s
  • Click "Add custom search engine"
  • Follow the on screen steps (right-clicking the search bar and selecting it in the settings)

Dependencies

~8–19MB
~248K SLoC