Interactive web search via rofi.
Multiple search engines supported.
AUR package rofi-search-git
or npm install -g rofi-search
or copy rofi-search to your $PATH
- search as you type
- Google search
- DuckDuckGo search
I'm Feeling Lucky
- Open the first result directly without waiting for the results to render- get top search results from multiple search engines
- copy search result website url
- open search result in web browser
nodejs >= 8.2.1
- rofi-blocks (
rofi-blocks-git
package in AUR) - rofi
xclip
copy to clipboard- ddgr (optional) DuckDuckGo search results scraper
Simply execute rofi-search
in terminal (needs ddgr
dependency to be installed).
Or see Usage section bellow for more advanced use cases.
You can choose between multiple methods of getting search results. Each one will give slightly different results.
You can even let rofi-search
combine search results from multiple search engines.
-
Use ddgr for scraping DuckDuckGo for search results
ddgr
does not parse information about number of search results so this information is not currently available when using this method
-
Use google's custom search engine API by setting
GOOGLE_API_KEY
&GOOGLE_SEARCH_ID
env variables-
It can Search the entire web if you enable it in settings
-
You will need to go to https://cse.google.com/cse/all and create your own google custom search engine.
-
Get API KEY for the created search engine.
-
NOTE: In the following examples, to be able to pass rofi-search
to rofi
and execute it with custom configuration, env configuration variable ROFI_SEARCH
is required to be set.
export GOOGLE_API_KEY='google-api-key'
export GOOGLE_SEARCH_ID='google-search-engine-id'
export ROFI_SEARCH='cse'
rofi -modi blocks -blocks-wrap /absolute/path/to/rofi-search -show blocks \
-lines 4 -eh 4 -kb-custom-1 'Control+y' -theme /path/to/your/theme.rasi
#for additional ddgr options see "ddgr --help"
export DDG_ARGS='["-n", 5]'
export ROFI_SEARCH='ddgr'
rofi -modi blocks -blocks-wrap /absolute/path/to/rofi-search -show blocks \
-lines 4 -eh 4 -kb-custom-1 'Control+y' -theme /path/to/your/theme.rasi
export DDG_ARGS='["-n", 3]'
export ROFI_SEARCH='cse,ddgr'
rofi -modi blocks -blocks-wrap /absolute/path/to/rofi-search -show blocks \
-lines 4 -eh 4 -kb-custom-1 'Control+y' -theme /path/to/your/theme.rasi
You can fetch rofi theme used in the gif preview HERE
GOOGLE_API_KEY
- secret key to access Google API. You can get it hereGOOGLE_SEARCH_ID
- Your custom search engine (cse) IDDDG_ARGS
-ddgr
command line arguments. Serialized json array.ROFI_SEARCH
- comma separated search methods- Supported methods:
cse
,ddgr
- If multiple methods are set,
rofi-search
will make multiple parallel searches and combine search results in the order search methods were defined
- Supported methods:
TITLE_COLOR
- customize search result title color (default blue). This can't be set in rofi themeROFI_SEARCH_TIMEOUT
- integer - delay between last character typed and automatic search execution (default500
ms)ROFI_SEARCH_DEBUG
- enables verbose logging if set to any valueROFI_SEARCH_CMD
- a command to execute when pressing-kb-accept-entry
(enter
) - defaults toxdg-open
- example:
export ROFI_SEARCH_CMD='google-chrome $URL'
- example:
-kb-accept-entry
- open url withxdg-open
(aka. your default browser)-kb-accept-custom
- open search results ongoogle.com
in your browser-kb-custom-1
- copy url to clipboard
-
DuckDuckGO integration - make font sizes configurable
- buku integration