mirror of
https://github.com/vale981/tridactyl
synced 2025-03-05 09:31:41 -05:00
Merge branch 'master' of github.com:cmcaine/tridactyl into glacambre-fix_#67
This commit is contained in:
commit
a50cd6efc3
4 changed files with 89 additions and 5 deletions
42
doc/amo.md
42
doc/amo.md
|
@ -30,3 +30,45 @@ This add-on is very usable, but is in an early stage of development. We intend
|
||||||
to implement the majority of Vimperator's features.
|
to implement the majority of Vimperator's features.
|
||||||
|
|
||||||
We recommend that you use the beta versions below.
|
We recommend that you use the beta versions below.
|
||||||
|
|
||||||
|
**Permissions:**
|
||||||
|
|
||||||
|
Since Tridactyl aims to provide all the features Vimperator and Pentadactyl
|
||||||
|
had, it requires quite a few permissions. Here we describe the specific
|
||||||
|
permissions and why we need them.
|
||||||
|
|
||||||
|
- Access your data for all websites:
|
||||||
|
* This is Mozilla's way of saying that Tridactyl can read the content of web
|
||||||
|
pages. This is necessary in order to e.g. find the links you can follow
|
||||||
|
with the `:hint` command (bound to `f` by default).
|
||||||
|
- Read and modify bookmarks:
|
||||||
|
* Tridactyl's command line has a powerful autocompletion mechanism. In
|
||||||
|
order to be able to autocomplete your bookmarks, Tridactyl needs to read
|
||||||
|
them.
|
||||||
|
- Clear recent browsing history, cookies, and related data:
|
||||||
|
* Tridactyl implements the `:sanitize` command Vimperator and Pentadactyl
|
||||||
|
had. It works a bit like the "Clear All History" dialog you can access by
|
||||||
|
pressing `Ctrl+Shift+Del` on default Firefox.
|
||||||
|
- Get data from the clipboard:
|
||||||
|
* If your clipboard contains a URL, pressing `p` will make Tridactyl follow
|
||||||
|
this URL in the current tab.
|
||||||
|
- Input data to the clipboard:
|
||||||
|
* Tridactyl lets you copy various elements to the clipboard such as a page's
|
||||||
|
URL with `yy`, a link's URL with `;y` or the content of an HTML element
|
||||||
|
with `;p`.
|
||||||
|
- Download files and read and modify the browser's download history:
|
||||||
|
* By pressing `;s`, `;S`, `;a` and `;A` you can save documents and pictures
|
||||||
|
from a page to your download folder.
|
||||||
|
- Access browsing history:
|
||||||
|
* The URLs of websites you've visited previously can be suggested as
|
||||||
|
arguments for `:tabopen` and similar commands.
|
||||||
|
- Access recently closed tabs:
|
||||||
|
* If you've accidentally closed a tab or window, Tridactyl will let you open
|
||||||
|
it again with the `:undo` command which is bound to `u` by default.
|
||||||
|
- Access browser tabs:
|
||||||
|
* Tridactyl provides a quick tab-switching menu/command with the `:buffer`
|
||||||
|
command (bound to `b`). This permission is also required to close, move,
|
||||||
|
and pin tabs, amongst other things.
|
||||||
|
- Access browser activity during navigation:
|
||||||
|
* This is needed for Tridactyl to be able to go back to normal mode every
|
||||||
|
time you open a new page. In the future we may use it for autocommands.
|
||||||
|
|
|
@ -120,6 +120,9 @@ NOTE: key modifiers (eg: control, alt) are not supported yet. See the FAQ below.
|
||||||
|
|
||||||
## Frequently asked questions
|
## Frequently asked questions
|
||||||
|
|
||||||
|
- Why doesn't Tridactyl respect my search engine settings?
|
||||||
|
|
||||||
|
It's a webextension limitation. Firefox doesn't allow reading user preferences.
|
||||||
|
|
||||||
- How can I change the search engine?
|
- How can I change the search engine?
|
||||||
|
|
||||||
|
@ -149,7 +152,7 @@ NOTE: key modifiers (eg: control, alt) are not supported yet. See the FAQ below.
|
||||||
|
|
||||||
- When I type 'f', can I type link names (like Vimperator) in order to narrow down the number of highlighted links?
|
- When I type 'f', can I type link names (like Vimperator) in order to narrow down the number of highlighted links?
|
||||||
|
|
||||||
Not yet. See [issue #28](https://github.com/cmcaine/tridactyl/issues/28).
|
You can, thanks to @saulrh. First `set hintfiltermode vimperator` and then `set hintchars 1234567890`.
|
||||||
|
|
||||||
- How to remap keybindings in both normal mode and ex mode?
|
- How to remap keybindings in both normal mode and ex mode?
|
||||||
|
|
||||||
|
@ -165,11 +168,11 @@ NOTE: key modifiers (eg: control, alt) are not supported yet. See the FAQ below.
|
||||||
|
|
||||||
- Why doesn't Tridactyl work on websites with frames?
|
- Why doesn't Tridactyl work on websites with frames?
|
||||||
|
|
||||||
It should work on some frames now. See [#122](https://github.com/cmcaine/tridactyl/issues/122).
|
It should work on some frames now. See [#122](https://github.com/cmcaine/tridactyl/issues/122).
|
||||||
|
|
||||||
- Can I change proxy via commands?
|
- Can I change proxy via commands?
|
||||||
|
|
||||||
No, this is a limitation of WebExtensions.
|
Not yet, but this feature will eventually be implemented.
|
||||||
|
|
||||||
- How do I disable Tridactyl on certain sites?
|
- How do I disable Tridactyl on certain sites?
|
||||||
|
|
||||||
|
|
6
scripts/amo_text_to_clipboard.sh
Executable file
6
scripts/amo_text_to_clipboard.sh
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Put the AMO flavour text in your clipboard for easy pasting.
|
||||||
|
# AMO doesn't support all HTML in markdown so we strip it out.
|
||||||
|
|
||||||
|
marked doc/amo.md | sed -r "s/<.?p>//g" | sed -r "s/<.?h.*>//g" | xclip -selection "clipboard"
|
|
@ -202,7 +202,10 @@ export function unfocus() {
|
||||||
|
|
||||||
//#content
|
//#content
|
||||||
export function scrollpx(a: number, b: number) {
|
export function scrollpx(a: number, b: number) {
|
||||||
window.scrollBy(a, b)
|
let top = document.body.getClientRects()[0].top;
|
||||||
|
window.scrollBy(a, b);
|
||||||
|
if (top == document.body.getClientRects()[0].top)
|
||||||
|
recursiveScroll(a, b, [document.body])
|
||||||
}
|
}
|
||||||
|
|
||||||
/** If two numbers are given, treat as x and y values to give to window.scrollTo
|
/** If two numbers are given, treat as x and y values to give to window.scrollTo
|
||||||
|
@ -226,13 +229,43 @@ export function scrollto(a: number, b: number | "x" | "y" = "y") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//#content_helper
|
||||||
|
function recursiveScroll(x: number, y: number, nodes: Element[]) {
|
||||||
|
let rect = null;
|
||||||
|
let node = null;
|
||||||
|
do {
|
||||||
|
node = nodes.splice(0, 1)[0]
|
||||||
|
if (!node)
|
||||||
|
return
|
||||||
|
rect = node.getClientRects()[0]
|
||||||
|
} while (!rect)
|
||||||
|
let top = rect.top
|
||||||
|
node.scrollBy(x, y);
|
||||||
|
if (top == node.getClientRects()[0].top) {
|
||||||
|
// children used to be .filter(DOM.isVisible)'d but apparently nodes
|
||||||
|
// that are !DOM.isVisible can have children that are DOM.isVisible
|
||||||
|
let children = Array.prototype.slice.call(node.childNodes)
|
||||||
|
recursiveScroll(x, y, nodes.concat(children))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//#content
|
//#content
|
||||||
export function scrollline(n = 1) {
|
export function scrollline(n = 1) {
|
||||||
|
let top = document.body.getClientRects()[0].top
|
||||||
window.scrollByLines(n)
|
window.scrollByLines(n)
|
||||||
|
if (top == document.body.getClientRects()[0].top) {
|
||||||
|
const cssHeight = window.getComputedStyle(document.body).getPropertyValue('line-height')
|
||||||
|
// Remove the "px" at the end
|
||||||
|
const lineHeight = parseInt(cssHeight.substr(0, cssHeight.length - 2))
|
||||||
|
// lineHeight probably can't be NaN but let's make sure
|
||||||
|
if (lineHeight)
|
||||||
|
recursiveScroll(0, lineHeight * n, [window.document.body])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//#content
|
//#content
|
||||||
export function scrollpage(n = 1) {
|
export function scrollpage(n = 1) {
|
||||||
window.scrollBy(0, window.innerHeight * n)
|
scrollpx(0, window.innerHeight * n)
|
||||||
}
|
}
|
||||||
|
|
||||||
//export function find(query: string) {
|
//export function find(query: string) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue