https://github.com/kumabook/bebop
Groovy WebExtension that offers command line interface like emacs helm for browsing.
https://github.com/kumabook/bebop
chrome-extension firefox-addon javascript webextension
Last synced: 6 months ago
JSON representation
Groovy WebExtension that offers command line interface like emacs helm for browsing.
- Host: GitHub
- URL: https://github.com/kumabook/bebop
- Owner: kumabook
- License: mit
- Created: 2016-04-30T13:35:57.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2023-01-03T17:26:01.000Z (over 3 years ago)
- Last Synced: 2024-11-09T21:36:47.374Z (over 1 year ago)
- Topics: chrome-extension, firefox-addon, javascript, webextension
- Language: JavaScript
- Homepage: https://addons.mozilla.org/ja/firefox/addon/bebop/
- Size: 3.36 MB
- Stars: 49
- Watchers: 4
- Forks: 3
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
bebop
=====
[](https://travis-ci.org/kumabook/bebop)
[](https://greenkeeper.io/)
[](https://coveralls.io/github/kumabook/bebop?branch=master)
[](https://codeclimate.com/github/kumabook/bebop/maintainability)

bebop is a WebExtensions that makes your browsing groovy.
bebop is available on [Firefox Add-ons][] and [Chrome web store][]
Enjoy and swing your browsing!
About
-----
bebop is a WebExtensions that offers command line interface like
[emacs helm](https://github.com/emacs-helm/helm) for browsing.
- bebop retrieves candidates from various sources such as `tabs`, `history`, `bookmark`, etc.
- you can narrows down them with a pattern.
- bebop provides actions on candidates such as `open url`, `activate tab`, `remove bookmark`, etc.
- you can choose a candidate and execute an action on it.
- you can also marks multiple candidates to execute chosen action on this set of candidates.
- ex: close multiple tabs at once.

Usage
-----
### 1. Show popup
`Click icon on toolbar` or `Ctrl+Comma` ... show popup that has command input
On Vivaldi, `_execute_browser_action` keyboard shortcut doesn't work.
So, bebop offers two alternatives to it.
| command name | description |
|:---------------------|:-------------------------------- |
| toggle_popup_window | show popup as a window |
| toggle_content_popup | show popup in a content document |
To use these alternatives, you need to set shortcut key.
See [Customize shortcut](#change-shortcut-key).
NOTE: `toggle_content_popup` doesn't work completely.
ex:
- it doesn't work in some pages
- it can't focus automatically from browser ui.
### 2. Narrow down candidates
Input a query to narrow down the candidates.
NOTE: On Windows, you need to press a tab-key to focus to a query input
| type | shorthand | description |
|:------------|:---------:|:------------------------------- |
| search | | open new tab with google search |
| link | l | click a link in current page |
| tab | t | active selected tab |
| history | h | open a history |
| bookmark | b | open a bookmark |
| session | s | restore a session |
| command | c | execute a command |
- `:type` narrows down to the candidates whose type is the specified type
- `x (shorthand letter)` also narrows down to the candidates whose shorthand is the specified type
- ex.
- `阿部寛` narrows down to the all candidates searched with `阿部寛`
- `:link` or `l` narrow down to link candidates
- `:link 阿部寛` or `l 阿部寛` narrow down to link candidates searched with `阿部寛`
You can use these key-bindings in command input:
| key-binding | command |
|:------------|:-------------------- |
| C-f | forward-char |
| C-b | backward-char |
| C-a | beginning-of-line |
| C-e | end-of-line |
| C-h | delete-backward-char |
| C-k | kill-line |
| C-g | quit |
### 3. Select the candidates
You can change the selected candidate with shortcut keys:
| key-binding | command |
|:---------------|:-------------------- |
| tab | next-candidate |
| S-tab | previous-candidate |
| C-n (only mac) | next-candidate |
| C-p | previous-candidate |
| C-j (opt-in) | next-candidate |
| C-k (opt-in) | previous-candidate |
| C-SPC | mark-candidate |
`C-j`, `C-k` are opt-in key-bindings. You can enable them from options page.
You can mark multiple candidates with `C-SPC`.
Some action can handle multiple candidates.
For example, `close-tab` command closes multiple tabs.
### 4. Execute action
A candidate can be executed by various actions.
You can execute default action by pressing `return` or click a candidate.
You can also execute another action by these shortcuts.
| key-binding | action |
|:------------|:------------------------ |
| return | runs the first action |
| S-return | runs the second action |
| C-i | lists available actions |
You can change shortcut key from `Ctrl+Comma`.
See [Customize shortcut](#change-shortcut-key)
Customize
---------
### Options page
- `open-options` command opens options page
- Firefox: `Add-ons` -> `Extensions` -> `Preferences` of `bebop`
- Chrome: `Window` -> `Extensions` -> `Options` of `bebop`
### Change shortcut key
#### Chromium based browser: Extensions page
1. Open `chrome://extensions/`
2. Click `Keyboard shortcuts` at thxe bottom of the page
3. Set `Activate the extension` as your favorite shortcut key
- Vivaldi user should use `toggle_popup_window` and change `In vivaldi` to `Global`.
#### Firefox: Change shortcut key with your own private addon
You can change the shourcut key if you build and upload the addon as your own private addon.
1. Clone this repository
```sh
git clone https://github.com/kumabook/bebop.git
```
2. Edit manifest.json:
- Edit `commands._execute_browser_action.suggested_key` with your favorite shortcut key.
- Edit `applications.gecko.id` with your id
3. Signup [developer hub](https://addons.mozilla.org/en-US/developers/addon/)
4. Get api key and api secret and set them to environment variables:
```
export NODE_ENV=production
export API_KEY=user:00000000:000
export API_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
5. Build and upload package as your private addon:
```
npm run sign
```
[Firefox Add-ons]: https://addons.mozilla.org/ja/firefox/addon/bebop/
[Chrome web store]: https://chrome.google.com/webstore/detail/bebop/idiejicnogeolaeacihfjleoakggbdid
Supported browsers
------------------
- Firefox
- Chrome
- Vivaldi
- (Opera)