parent
f1d4bb8c37
commit
8e5ceebf61
3 changed files with 46 additions and 6 deletions
@ -1,4 +1,18 @@ |
||||
import * as tabs from './tabs'; |
||||
|
||||
const KEY_MAP = { |
||||
'tabs.prev': 104, |
||||
'tabs.next': 108 |
||||
}; |
||||
|
||||
browser.runtime.onMessage.addListener((request, sender, sendResponse) => { |
||||
console.log("Pressed " + request.which); |
||||
sendResponse({ response: "Response from background script" }); |
||||
switch (request.key) { |
||||
case KEY_MAP['tabs.prev']: |
||||
tabs.selectPrevTab(sender.tab.index); |
||||
break; |
||||
case KEY_MAP['tabs.next']: |
||||
tabs.selectNextTab(sender.tab.index); |
||||
break; |
||||
} |
||||
sendResponse(); |
||||
}); |
||||
|
@ -0,0 +1,23 @@ |
||||
const selectPrevTab = (current) => { |
||||
chrome.tabs.query({ currentWindow: true }, (tabs) => { |
||||
if (tabs.length < 2) { |
||||
return; |
||||
} |
||||
let select = (current - 1) % tabs.length |
||||
let id = tabs[select].id; |
||||
chrome.tabs.update(id, { active: true }) |
||||
}); |
||||
}; |
||||
|
||||
const selectNextTab = (current) => { |
||||
chrome.tabs.query({ currentWindow: true }, (tabs) => { |
||||
if (tabs.length < 2) { |
||||
return; |
||||
} |
||||
let select = (current + 1 + tabs.length) % tabs.length |
||||
let id = tabs[select].id; |
||||
chrome.tabs.update(id, { active: true }) |
||||
}); |
||||
}; |
||||
|
||||
export { selectNextTab, selectPrevTab }; |
@ -1,9 +1,12 @@ |
||||
window.addEventListener("keypress", (e) => { |
||||
browser.runtime.sendMessage({ |
||||
which: e.which || e.keyCode, |
||||
}).then((msg) => { |
||||
console.log(`Message from the background script: ${msg.response}`); |
||||
key: e.which || e.keyCode, |
||||
shift: e.shift, |
||||
alt: e.alt, |
||||
meta: e.meta, |
||||
ctrl: e.ctrl, |
||||
}).then(() => { |
||||
}, (err) => { |
||||
console.log(`Error: ${err}`); |
||||
console.log(`Vim Vixen: ${err}`); |
||||
}); |
||||
}); |
||||
|
Reference in new issue