From 7c1474a76993a948831af6e8c54552da52f27161 Mon Sep 17 00:00:00 2001 From: Vonavy Date: Wed, 15 Oct 2025 11:18:42 +1000 Subject: [PATCH 1/2] Make search shortcut layout-independent --- resources/skins.citizen.scripts/search.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/skins.citizen.scripts/search.js b/resources/skins.citizen.scripts/search.js index 1f03662a7..1cd7f372b 100644 --- a/resources/skins.citizen.scripts/search.js +++ b/resources/skins.citizen.scripts/search.js @@ -126,14 +126,14 @@ function bindOpenOnSlash( window, details ) { const onExpandOnSlash = ( /** @type {KeyboardEvent} */ event ) => { const isKeyPressed = () => { // "/" key is standard on many sites - if ( event.key === '/' ) { + if ( event.code === 'Slash' || event.key === '/' ) { return true; // "Ctrl" + "K" (or "Command" + "K" on Mac) - } else if ( ( event.ctrlKey || event.metaKey ) && event.key.toLowerCase() === 'k' ) { + } else if ( ( event.ctrlKey || event.metaKey ) && ( event.code === 'KeyK' || event.key.toLowerCase() === 'k' ) ) { return true; // "Alt" + "Shift" + "F" is the MW standard key // Shift key might makes F key goes capital, so we need to make it lowercase - } else if ( event.altKey && event.shiftKey && event.key.toLowerCase() === 'f' ) { + } else if ( event.altKey && event.shiftKey && ( event.code === 'KeyF' || event.key.toLowerCase() === 'f' ) ) { return true; } else { return false; From fc91ba95c160250260d300ef69e463be81694a7a Mon Sep 17 00:00:00 2001 From: Vonavy Date: Fri, 17 Oct 2025 17:39:20 +1000 Subject: [PATCH 2/2] Remove event.key handing Update event checks to rely solely on event.code for shortcut detection. --- resources/skins.citizen.scripts/search.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/resources/skins.citizen.scripts/search.js b/resources/skins.citizen.scripts/search.js index 1cd7f372b..7e6e8552d 100644 --- a/resources/skins.citizen.scripts/search.js +++ b/resources/skins.citizen.scripts/search.js @@ -126,14 +126,13 @@ function bindOpenOnSlash( window, details ) { const onExpandOnSlash = ( /** @type {KeyboardEvent} */ event ) => { const isKeyPressed = () => { // "/" key is standard on many sites - if ( event.code === 'Slash' || event.key === '/' ) { + if ( event.code === 'Slash' ) { return true; // "Ctrl" + "K" (or "Command" + "K" on Mac) - } else if ( ( event.ctrlKey || event.metaKey ) && ( event.code === 'KeyK' || event.key.toLowerCase() === 'k' ) ) { + } else if ( ( event.ctrlKey || event.metaKey ) && event.code === 'KeyK' ) { return true; // "Alt" + "Shift" + "F" is the MW standard key - // Shift key might makes F key goes capital, so we need to make it lowercase - } else if ( event.altKey && event.shiftKey && ( event.code === 'KeyF' || event.key.toLowerCase() === 'f' ) ) { + } else if ( event.altKey && event.shiftKey && event.code === 'KeyF' ) { return true; } else { return false;