add multiple windows support with shared session, add shortcuts
This commit is contained in:
@@ -2,8 +2,10 @@
|
||||
|
||||
A small, keyboard-driven QtWebEngine browser in the spirit of qutebrowser.
|
||||
|
||||
This is the skeleton: one window, one page, a qutebrowser-style status line and
|
||||
`:` command line, `f` link hints and adblocking. No tabs and no config file yet.
|
||||
One page per window, a qutebrowser-style status line and `:` command line, `f`
|
||||
link hints and adblocking. There is deliberately no tab bar: where qutebrowser
|
||||
opens or closes a tab, att opens or closes a window, and your window manager
|
||||
does the tabbing. No config file yet.
|
||||
|
||||
## Running
|
||||
|
||||
@@ -52,9 +54,12 @@ is hidden while a page is fullscreen.
|
||||
| Key | Action |
|
||||
| -------------- | ---------------------------------------- |
|
||||
| `o` | open the command line prefilled `:open ` |
|
||||
| `O` | same, prefilled with the current URL |
|
||||
| `O` | same, but opens in a new window (`-w`) |
|
||||
| `go` / `gO` | edit the current URL, here / new window |
|
||||
| `d` | close this window |
|
||||
| `:` | open a bare command line |
|
||||
| `i` | enter insert mode |
|
||||
| `gi` | focus the first text field, insert mode |
|
||||
| `f` | hint mode: follow a link by its label |
|
||||
| `Escape` | back to normal mode |
|
||||
| `h` `j` `k` `l`| scroll |
|
||||
@@ -80,8 +85,7 @@ on the command line; `Enter` opens it.
|
||||
(`asdfghjkl`). Type a label to click it; `Backspace` undoes a letter, `Escape`
|
||||
cancels. The click is a real mouse event sent to the render widget, so it works
|
||||
on sites that ignore `element.click()`. Following a text field drops you into
|
||||
insert mode. Links that would open a new window are opened in place, since there
|
||||
are no tabs yet.
|
||||
insert mode. Links that would open a new window are opened in place for now.
|
||||
|
||||
The hint script runs in `QWebEngineScript::ApplicationWorld`, so the page's own
|
||||
JavaScript can't see or interfere with it. It doesn't descend into iframes or
|
||||
@@ -115,8 +119,10 @@ on, for when a site breaks.
|
||||
|
||||
## Commands
|
||||
|
||||
`:open <url|query>` (alias `:o`), `:quit` (alias `:q`), `:reload`, `:back`,
|
||||
`:forward`, `:stop`, `:history-clear`, `:adblock-update`, `:adblock-toggle`.
|
||||
`:open [-w] <url|query>` (alias `:o`; `-w`, or qutebrowser's `-t`, opens a new
|
||||
window), `:close` (alias `:tab-close`, closes this window), `:quit` (alias `:q`,
|
||||
closes all windows), `:reload`, `:back`, `:forward`, `:stop`, `:history-clear`,
|
||||
`:adblock-update`, `:adblock-toggle`.
|
||||
|
||||
`:open` accepts a full URL, a bare host (`example.com` → `https://example.com`),
|
||||
an existing local path, or free text, which goes to DuckDuckGo.
|
||||
@@ -145,10 +151,11 @@ parent window never sees them otherwise.
|
||||
|
||||
## Next steps
|
||||
|
||||
- Tabs (`QTabWidget` + a per-tab `QWebEngineView`), `gt`/`gT`, `d` to close.
|
||||
- Open `target=_blank` links, `window.open` and middle-clicks in new windows
|
||||
(`QWebEnginePage::newWindowRequested`).
|
||||
- Auto insert mode: inject a `QWebEngineScript` that reports `focusin` /
|
||||
`focusout` on editable elements back over `QWebChannel`.
|
||||
- More hint modes: `F` (new tab, once there are tabs), `;y` to yank a link.
|
||||
- More hint modes: `F` (follow in a new window), `;y` to yank a link.
|
||||
- `/` and `?` search with `n`/`N`, using `QWebEnginePage::findText`.
|
||||
- A config file for bindings, start page and search engine.
|
||||
- Counts before commands (`3j`) and a proper command parser with completion.
|
||||
|
||||
Reference in New Issue
Block a user