rofi-search
v1.0.0
Published
Interactive web search via rofi
Downloads
51
Maintainers
Readme
rofi-search
Interactive web search via rofi.
Multiple search engines supported.
Installation
AUR package rofi-search-git
or npm install -g rofi-search
or copy rofi-search to your $PATH
Features
- 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
Dependencies
nodejs >= 8.2.1
- rofi-blocks (
rofi-blocks-git
package in AUR) - rofi
xclip
copy to clipboard- googler (optional) google search results scraper
- ddgr (optional) DuckDuckGo search results scraper
HOW TO RUN
Simply execute rofi-search
in terminal (needs googler
dependency to be installed).
Or see Usage section bellow for more advanced use cases.
Usage
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 googler for scraping Google for search results
googler
does not parse information about number of search results so this information is not currently available when using this method
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 variablesIt 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
Search engine ID
from the settings panel
- Get
Get API KEY for the created search engine.
Examples
Google CSE
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
googler
#for additional googler options see "googler --help"
export GOOGLE_ARGS='["--count", 5]'
export ROFI_SEARCH='googler'
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
combine top free results from DuckDuckGo and Google
export DDG_ARGS='["-n", 3]'
export GOOGLE_ARGS='["--count", 3]'
export ROFI_SEARCH='googler,ddgr' #or '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
Options
GOOGLE_API_KEY
- secret key to access Google API. You can get it hereGOOGLE_SEARCH_ID
- Your custom search engine (cse) IDGOOGLE_ARGS
-googler
command line arguments. Serialized json array.DDG_ARGS
-ddgr
command line arguments. Serialized json array.ROFI_SEARCH
- comma separated search methods- Supported methods:
cse
,googler
,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:
supported rofi actions
-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
TODO (PR is welcome)
- [x] ~~DuckDuckGO integration~~
- [ ] make font sizes configurable
- [ ] buku integration