qutebrowser – vim-style internet browser with minimalistic design. Written with python using Qt. It uses Qt‘s web classes QtWebkit and QtWebengine. Author is Florian Bruhin.

Problem

Several years ago, when qutebrowser works only with Webkit, I‘ve developed caret mode functionality to select text with keyboard. After the switch to Webengine this functionality was broken.

This did restrict me to switch to new versions of qutebrowser. But because of discontinuation of Webkit development many huge web services became unusable. More than a year I had task in my TODO list, write caret mode for qb. Finally, I found some time to hack this functionality.

Solution

Webengine is based on Chromium. That‘s why maintainer adviced to port caretbrowsing extension for chrome browser to qutebrowser. And besides I had to port only caret visalization code. The position of caret regulated by Web API Selection.

As in previous implementation, initial caret position is top part of textual web content or the place of selected text. Generally, caret positioning is one else problem that I want to resolve.

Caret mode in action!

There are some ideas to make better experience of using caret mode to select text with keyboard:

  • position caret with hints, something like easymotions vim extension;
  • functionality of keys f and t in vim, for caret jumping in current line. Maybe as clever-f for vim.

But I must admit, that I don‘t see how to implement these ideas at this moment. And consider small amount of free time I have, I can not get to this work soon.

Several days ago, my pull request was accepted and merged. So, time to update your browser.