aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--background_page.html6
-rw-r--r--linkHints.js13
-rw-r--r--options.html6
-rw-r--r--vimiumFrontend.js2
4 files changed, 17 insertions, 10 deletions
diff --git a/background_page.html b/background_page.html
index 1c326cba..5399c51f 100644
--- a/background_page.html
+++ b/background_page.html
@@ -6,7 +6,11 @@
var validFirstKeys = {};
var singleKeyCommands = [];
- var defaultSettings = { scrollStepSize: 60 };
+ var defaultSettings = {
+ scrollStepSize: 60,
+ defaultZoomLevel: 100,
+ linkHintCharacters: "sadfjklewcmp"
+ };
// Port handler mapping
var portHandlers = {
diff --git a/linkHints.js b/linkHints.js
index 0d16bab1..864ee23a 100644
--- a/linkHints.js
+++ b/linkHints.js
@@ -2,6 +2,8 @@
* This implements link hinting. Typing "F" will enter link-hinting mode, where all clickable items on
* the page have a hint marker displayed containing a sequence of letters. Typing those letters will select
* a link.
+ *
+ * The characters we use to show link hints are a user-configurable option. By default they're the home row.
*/
var linkHintsCss =
'.vimiumHintMarker {' +
@@ -22,7 +24,6 @@ var linkHintsCss =
'}';
var hintMarkers = [];
-var hintCharacters = "sadfjklewcmp";
// The characters that were typed in while in "link hints" mode.
var hintKeystrokeQueue = [];
var linkHintsModeActivated = false;
@@ -54,7 +55,7 @@ function buildLinkHints() {
// Initialize the number used to generate the character hints to be as many digits as we need to
// highlight all the links on the page; we don't want some link hints to have more chars than others.
- var digitsNeeded = Math.ceil(logXOfBase(visibleElements.length, hintCharacters.length));
+ var digitsNeeded = Math.ceil(logXOfBase(visibleElements.length, settings.linkHintCharacters.length));
var linkHintNumber = 0;
for (var i = 0; i < visibleElements.length; i++) {
hintMarkers.push(addMarkerFor(visibleElements[i], linkHintNumber, digitsNeeded));
@@ -139,7 +140,7 @@ function onKeyDownInLinkHintsMode(event) {
hintKeystrokeQueue.pop();
updateLinkHints();
}
- } else if (hintCharacters.indexOf(keyChar) >= 0) {
+ } else if (settings.linkHintCharacters.indexOf(keyChar) >= 0) {
hintKeystrokeQueue.push(keyChar);
updateLinkHints();
} else {
@@ -213,12 +214,12 @@ function highlightLinkMatches(searchString) {
* the hint text. The hint string will be "padded with zeroes" to ensure its length is equal to numHintDigits.
*/
function numberToHintString(number, numHintDigits) {
- var base = hintCharacters.length;
+ var base = settings.linkHintCharacters.length;
var hintString = [];
var remainder = 0;
do {
remainder = number % base;
- hintString.unshift(hintCharacters[remainder]);
+ hintString.unshift(settings.linkHintCharacters[remainder]);
number -= remainder;
number /= Math.floor(base);
} while (number > 0);
@@ -226,7 +227,7 @@ function numberToHintString(number, numHintDigits) {
// Pad the hint string we're returning so that it matches numHintDigits.
var hintStringLength = hintString.length;
for (var i = 0; i < numHintDigits - hintStringLength; i++)
- hintString.unshift(hintCharacters[0]);
+ hintString.unshift(settings.linkHintCharacters[0]);
return hintString.join("");
}
diff --git a/options.html b/options.html
index 06c8cb05..d5cab9c8 100644
--- a/options.html
+++ b/options.html
@@ -58,7 +58,7 @@
function initializeOptions() {
populateOptions();
- var elements = ["scrollStepSize", "defaultZoomLevel", "excludedUrls"];
+ var elements = ["scrollStepSize", "defaultZoomLevel", "excludedUrls", "linkHintCharacters"];
for (var i = 0; i < elements.length; i++)
$(elements[i]).addEventListener("change", enableSaveButton, false);
$("advancedOptions").addEventListener("click", openAdvancedOptions, false);
@@ -71,6 +71,7 @@
localStorage["scrollStepSize"] = $("scrollStepSize").value
localStorage["defaultZoomLevel"] = $("defaultZoomLevel").value
localStorage["excludedUrls"] = $("excludedUrls").value;
+ localStorage["linkHintCharacters"] = $("linkHintCharacters").value;
$("saveOptions").disabled = true;
}
@@ -90,6 +91,7 @@
scrollStepSize.value = "60";
defaultZoomLevel.value = "100";
excludedUrls.value = "";
+ linkHintCharacters.value = "sadfjklewcmp";
$("saveOptions").disabled = true;
}
@@ -147,7 +149,7 @@
The characters placed next to each link after typing "F" to enter link hinting mode.
</div>
</div>
- <input id="characterLinkHints" type="text" style="width:150px" />
+ <input id="linkHintCharacters" type="text" style="width:150px" />
</td>
</tr>
</table>
diff --git a/vimiumFrontend.js b/vimiumFrontend.js
index fef755e4..6f417f88 100644
--- a/vimiumFrontend.js
+++ b/vimiumFrontend.js
@@ -5,7 +5,7 @@
* commands by connectiong to a port named "domReady".
*/
var settings = {};
-var settingsToLoad = ["scrollStepSize"];
+var settingsToLoad = ["scrollStepSize", "linkHintCharacters"];
var getCurrentUrlHandlers = []; // function(url)