• Stars
    star
    287
  • Rank 144,232 (Top 3 %)
  • Language
    HTML
  • License
    The Unlicense
  • Created about 5 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A keyboard interface to the web, inspired by Kakoune

Krabby

Platform Browser Discord IRC Plugins

Installation | Configuration | Documentation | Supported platforms | Browser compatibility | Troubleshooting | Contributing

Krabby is a browser extension (for Chrome and Firefox) for keyboard-based navigation, inspired by Kakoune.

The main differences with existing extensions are: multiple selections, keyboard layout agnostic, SOV (subject–object–verb) constructs and simple interaction with external programs. It is also quite usable with the mouse.

Thumbnail Button

See YouTube · Krabby and krabby-resources for all available demos.

TL;DR

WebExtension — Keyboard interface — Subject–object–verb order — Multiple selections — Kakoune-inspired

Run the following in your terminal, then follow the onscreen instructions.

git clone https://github.com/alexherbo2/krabby
cd krabby
make install [static=no] [interactive=yes]

After installing, try to accomplish the following examples:

Opening links in a paragraph

Navigate to https://tuppervim.org and type:

f{hint}s[alt+a][alt+I][ctrl+enter][alt+x]

Explanation

  • f enters hint mode,
  • {hint} is a placeholder for you to select a link,
  • s creates a selection out of the active element,
  • Alt + a expands the region,
  • Alt + I selects all links,
  • Control + Enter opens selected links in the background.
  • Optionally, Alt + x will undo the operation (closing right tabs).
Play videos with mpv

Navigate to https://youtube.com/results?search_query=Berserk+AMV and type:

F{hint}{hint}<page-down>{hint}<escape>m

Explanation

  • F enters hint mode (lock),
  • {hint} is a placeholder for you to select 2 links,
  • Page Down scrolls one page down,
  • {hint} is a placeholder for you to select another link,
  • Escape leaves hint mode.
  • Finally, m opens the selection with mpv.

If you want to play around without installing, a live demo is available here.

Features

  • Subject–object–verb order. Learn more at Differences with Vi(m).
  • Keyboard layout agnostic. Maps to physical keys, but displays with the US layout.
  • Multiple selections as a central way of interacting
  • Powerful selection manipulation primitives
  • Link hints
  • External editor support. Open your favorite editor on text inputs.
  • Tab search
  • Contextual commands
  • Contextual help
  • Simple interaction with external programs
  • Usable with the mouse. You can for example create a selection by grabbing a link with the mouse and s to create the selection. Or create multiple selections by clicking on hints with F. If you hold Control or Command, you can even make selections with the mouse selection area.
  • Limited scope. Krabby is not Vim, nor Kakoune. Krabby is trying to be a navigation tool and some concepts from code editors don’t translate well. For example, there is no concept of mode in Krabby, but a system of contexts.
  • Composability. Composability is better than extensibility. Krabby tries hard to provide features that interact well with each other. For example, f and y are two building blocks to focus a link and yank its URL. Depending on the context, y will yank the page or a link URL.
  • Modular (think Emacs). Krabby is divided into multiple small projects. At its core Krabby just holds the configuration and grabs its functionalities from other projects.
  • Chrome and Firefox support. It has also been tested on Opera, Vivaldi and Brave.

Dependencies

Extensions

Installation

Run the following in your terminal, then follow the onscreen instructions.

make install [static=no] [extensions=yes] [interactive=yes]

Supported platforms

Browser compatibility

Web browser Support Engine Notes
Chrome âś“ Blink
Chromium âś“ Blink
Firefox âś“ Gecko Only developer or unbranded version
Edge ? Blink
Opera âś“ Blink
Safari âś— WebKit
Vivaldi âś“ Blink
Brave âś“ Blink

Credits

References

More Repositories

1

auto-pairs.kak

Auto-pairing of characters for Kakoune
KakouneScript
67
star
2

kakoune.cr

A command-line tool for Kakoune
Crystal
49
star
3

alacritty-extended-keys

42
star
4

dotfiles

~taupiqueur
KakouneScript
32
star
5

snippet.kak

Snippets integration for Kakoune
23
star
6

surround.kak

Surround selections for Kakoune
KakouneScript
19
star
7

webextension-dmenu

Tab search, selection and beyond with a dmenu filter program
JavaScript
16
star
8

webextension-shell

WebExtension API to execute external commands through native messaging
Shell
15
star
9

chronic

A natural language date-time parser for the command-line
Crystal
14
star
10

tiny.kak

A set of commands you likely want in your kakrc.
KakouneScript
11
star
11

sway-tools

A collection of scripts for Sway
Shell
10
star
12

indent.kak

Indent settings for Kakoune
KakouneScript
8
star
13

snippet.cr

Code snippets
Crystal
8
star
14

show-whitespace.kak

Refined show whitespaces for Kakoune
KakouneScript
7
star
15

wayfire-resources

6
star
16

alacritty.kak

Alacritty integration for Kakoune
KakouneScript
6
star
17

pipe-selections-as-jsonl.kak

Pipe selections as JSON Lines to work with traditional Unix tools
KakouneScript
5
star
18

tmux.kak

tmux integration for Kakoune
KakouneScript
5
star
19

mark.kak

Mark-related commands for Kakoune
KakouneScript
5
star
20

krabby-resources

Resources for Krabby
Shell
5
star
21

window.kak

Window commands for Kakoune
KakouneScript
5
star
22

selection.js

A JavaScript library to manipulate multiple selections, inspired by Kakoune
JavaScript
4
star
23

webextension-editor

Open an external editor to edit text inputs
JavaScript
4
star
24

kakoune-language-support

KakouneScript
3
star
25

shortcuts.kak

Shortcuts for Kakoune
KakouneScript
3
star
26

git.kak

Git integration for Kakoune
KakouneScript
3
star
27

ffmpeg-tools

A collection of scripts for FFmpeg
Shell
3
star
28

konosuba-wallpapers

3
star
29

hint.js

A JavaScript library that lets you click with your keyboard
JavaScript
3
star
30

text-objects.kak

Text objects for Kakoune
KakouneScript
3
star
31

rails.kak

Ruby on Rails support for Kakoune
3
star
32

roman-numeral.rb

A command-line program and library for parsing and generating Roman numerals
Ruby
3
star
33

webextension-commands

WebExtension API to perform browser actions
JavaScript
3
star
34

batch.kak

Batch integration for Kakoune
Shell
3
star
35

active-record.rb

A step-by-step implementation of the active record pattern for educational purposes.
Ruby
3
star
36

chrome-dmenu

JavaScript
2
star
37

prompt.js

A drop-in replacement for the JavaScript’s prompt
JavaScript
2
star
38

dofus-items

2
star
39

chrome-theme

A dark theme for Chrome
Shell
2
star
40

player.js

A JavaScript library for controlling media players
JavaScript
2
star
41

mouse.js

A JavaScript library to simulate mouse input
JavaScript
2
star
42

clipboard.js

A JavaScript library to copy text to clipboard
JavaScript
2
star
43

modal.js

A way to create modal interfaces with filters
JavaScript
2
star
44

enum.rb

Enum for Ruby
Ruby
2
star
45

kcr-resources

Resources for kakoune.cr
2
star
46

walk.cr

A Crystal library for walking a directory recursively
Crystal
2
star
47

dofus-theme-classes

Color scheme of classes for Dofus
2
star
48

git-tools

A collection of scripts for Git
Shell
2
star
49

scroll.js

A JavaScript library for scrolling web pages
JavaScript
2
star
50

hugo-theme-steve-losh

Steve Losh’s theme for Hugo
CSS
2
star
51

chrome_shortcuts_mru_experimental_feature

JavaScript
1
star
52

movies

1
star
53

dofus-alexherbo2-characters

alexherbo2’s characters from Dofus
1
star
54

hunter-x-hunter-wallpapers

1
star
55

krabby-selection

A Krabby plugin to make selections with Selection
JavaScript
1
star
56

webextension-ankama-direct-link

Bypass the Ankama external link warning
Shell
1
star
57

dofus-guild-le-cercle-des-tofus-disparus

Guild “Le Cercle des Tofus disparus” from Dofus
1
star
58

fifo.cr

A Crystal library for using FIFOs
Crystal
1
star
59

mangas

1
star
60

dictionary

1
star
61

akhts-wallpapers

1
star
62

dofus-configuration

1
star
63

dofus-zebrapig2-characters

zebrapig2’s characters from Dofus
1
star
64

series

1
star
65

terminal-extended-keys

1
star
66

kakoune-test

KakouneScript
1
star
67

mapbox-gl-js-experiments

JavaScript
1
star
68

alexherbo2.github.io

Personal website builds
HTML
1
star
69

snake.cr

1
star
70

tmux-tools

A collection of scripts for tmux
Shell
1
star
71

animes

1
star
72

youtube

1
star
73

jojo-no-kimyou-na-bouken-wallpapers

1
star
74

taupiqueur-notes

1
star
75

krabby-launchlet

A Krabby plugin to run commands by name with Launchlet
JavaScript
1
star
76

dofus-reservoirpig2-characters

reservoirpig2’s characters from Dofus
1
star
77

dofus-alexheres2-characters

alexheres2’s characters from Dofus
1
star
78

carousel.js

A JavaScript library to slide sections
JavaScript
1
star
79

dofus-alliance-boufthub

Alliance “BouftHub” from Dofus
1
star
80

games

1
star
81

comics

1
star
82

rsub.cr

A Crystal library for string replacement from the right-hand side
Crystal
1
star
83

blog.rb

1
star
84

chrome-nano

JavaScript
1
star
85

monogatari-series-citations

Citations from Monogatari Series
Shell
1
star
86

mark.js

A JavaScript library to save and restore document position
JavaScript
1
star
87

website

Personal website built with Hugo
Shell
1
star
88

puppeteer-experiments

JavaScript
1
star
89

node.js

A tree node-based implementation in JavaScript
JavaScript
1
star
90

chrome-pandoc

JavaScript
1
star