Compare commits

..

1 Commits

Author SHA1 Message Date
428c967255 Rewrite 2025-05-18 03:38:55 -04:00

View File

@ -5,11 +5,11 @@
// @match *://news.ycombinator.com/*
// @icon https://gitea.amine-bouabdallaoui.fr/AmineB/ycombinator-keys/raw/branch/main/icons/48.png
// @grant none
// @version 8
// @version 4
// @author AmineB
// @description Ycombinator keyboard nav.
// @downloadURL https://gitea.amine-bouabdallaoui.fr/brian6932/ycombinator-keys/raw/branch/main/keyboard-watcher.user.js
// @updateURL https://gitea.amine-bouabdallaoui.fr/brian6932/ycombinator-keys/raw/branch/main/keyboard-watcher.user.js
// @downloadURL https://gitea.amine-bouabdallaoui.fr/AmineB/ycombinator-keys/raw/branch/main/keyboard-watcher.user.js
// @updateURL https://gitea.amine-bouabdallaoui.fr/AmineB/ycombinator-keys/raw/branch/main/keyboard-watcher.user.js
// ==/UserScript==
// jshint esversion: 11
@ -21,6 +21,9 @@ let
selected = -1,
lastCollapsed
const
input = new Set()
.add('INPUT')
.add('TEXTAREA'),
// This is a Firefox only option. For some reason older versions of Firefox can't set outline: none.
focusInvisible = { __proto__: null, focusVisible: false },
isComment = () => query[selected].classList.contains('comtr'),
@ -35,6 +38,7 @@ const
query[selected].lastChild.firstChild.firstChild.focus(focusInvisible)
},
keydown = event => {
if (!input.has(event.target.tagName))
switch (event.key) {
case 'j':
const lastIndex = query.length - 1
@ -77,7 +81,7 @@ const
else
query[selected].nextSibling.querySelector('a.clicky.hider')?.click()
if (selected + 1 <= query?.length)
if (selected + 1 <= query.length)
highlightSelected()
return
case 'c':