Greasy Fork is available in English.

WASD Navigation

Use your keyboard for website-navigation

// ==UserScript==
// @name          WASD Navigation
// @author        Agreasyforkuser
// @version       1.0
// @icon          https://cdn-icons-png.flaticon.com/128/9861/9861306.png
// @description   Use your keyboard for website-navigation
// @match         *://*/*
// @namespace     https://greasyfork.org/users/1115027
// ==/UserScript==

"use strict";

const scrollAmount = 160; //scrolling speed
const scrollBehavior = "smooth"; //scrolling options: smooth, instant, auto
const inputs = ['input', 'select', 'button', 'textarea']; //turn off while typing text


window.addEventListener("keydown", onkeydown);
function onkeydown(event) {
  const key = event.key;
  const activeElement = document.activeElement;

  if (event.altKey || event.ctrlKey || event.metaKey || inputs.includes(activeElement.tagName.toLowerCase())) {
    return;
  }

  switch (key) {
    case 'd':
      window.scrollBy({ left: scrollAmount, behavior: scrollBehavior });
      break;
    case 'a':
      window.scrollBy({ left: -scrollAmount, behavior: scrollBehavior });
      break;
    case 'w':
      window.scrollBy({ top: -scrollAmount, behavior: scrollBehavior });
      break;
    case 's':
      window.scrollBy({ top: scrollAmount, behavior: scrollBehavior });
      break;
    case 'q':
      window.scroll({ top: 0, behavior: scrollBehavior });
      break;
    case 'e':
      window.scroll({ top: document.body.scrollHeight, behavior: scrollBehavior });
      break;
  }
}