Skip to content

Quick Keys — Custom Browser Shortcuts for Chrome Supercharge your browsing with 50+ customizable actions — from tab management and navigation to media controls and page tweaks — all triggered by your own keyboard shortcuts. Create, edit, and run shortcuts instantly.

Notifications You must be signed in to change notification settings

haseebmalik18/quick-keys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quickeys – Custom Browser Keyboard Shortcuts

Used by 500+ active users to supercharge browsing productivity

Quickeys is a Chrome extension that lets you create personalized keyboard shortcuts for faster, smoother browsing.
With 50+ built-in actions across navigation, tab management, media control, accessibility, and more, you can automate repetitive browser tasks — no mouse required.

Project Overview

Quickeys solves the problem of repetitive browser actions by allowing you to create custom keyboard shortcuts for your most-used tasks.
Whether you want to close all other tabs, mute a video instantly, or run custom JavaScript on any page, Quickeys makes it one keystroke away.

Tech Stack

  • JavaScript (ES6+) – Core extension logic and DOM manipulation
  • Chrome Extension API – Manifest V3 with service workers
  • Webpack 5 – Module bundling and build optimization
  • CSS3 – User interface styling
  • Chrome Storage API – Settings and shortcuts persistence

Installation

Install directly from the Chrome Web Store.

Features

Core Functionality

  • Create custom keyboard shortcuts using any key combination
  • Assign site-specific shortcuts with wildcard matching
  • Over 50 built-in actions across 8 categories
  • Real-time visual feedback when shortcuts execute
  • Dynamic permission management

Action Categories

  • Navigation: Scroll controls, history navigation, URL copying
  • Tab Management: Create, close, switch, pin, mute tabs
  • Window Control: New windows, fullscreen, minimize/maximize
  • Media Control: Play/pause, volume adjustment, skip controls
  • Clipboard: Copy URLs, titles, selected text
  • Accessibility: Font size adjustment, dark mode, reader mode
  • DOM Interaction: Element clicking, form filling, visibility toggles
  • Custom Automation: Execute JavaScript securely in a sandbox

Advanced Features

  • Cross-site compatibility with conflict resolution
  • Permission-aware action execution
  • Pattern caching for performance optimization
  • Multi-context script execution (main world and isolated world)

Technical Challenges

Content Security Policy (CSP) Bypass

Problem: Modern websites block inline script execution with CSP headers, preventing custom JavaScript actions from running.

Solution: Used Chrome's declarativeNetRequest API to remove CSP headers at the network layer before they reach the page. This allows custom scripts to execute while maintaining security by only affecting user-initiated actions.

Cross-Context Communication

Problem: Chrome extensions run in isolated contexts (background worker, content scripts, popup) that can't directly share state or call functions.

Solution: Built a message-passing system using Chrome's runtime API with persistent port connections. Added reconnection logic to handle service worker restarts and maintain reliable communication.

Pattern Matching Performance

Problem: Checking wildcard patterns (like *.github.com/*) on every keystroke for dozens of shortcuts caused input lag.

Solution: Implemented pattern caching by compiling wildcards to RegExp once and reusing them. Added conflict resolution modes and lazy evaluation to minimize unnecessary pattern checks.

Dynamic Permission Management

Problem: Requesting all permissions upfront triggers security warnings and reduces user trust, but different actions need different permissions.

Solution: Declared permissions as optional in the manifest and request them only when users select actions that need them. Actions gracefully degrade when permissions are denied.

Manifest V3 Service Worker Lifecycle

Problem: Service workers can terminate at any time, losing in-memory state for shortcuts and settings between keypress events.

Solution: Stored all critical state in chrome.storage.sync for persistence and rehydrated it on worker startup. Moved time-sensitive tracking to content scripts which have longer lifespans.

License

MIT License – see LICENSE for details.

Author: HaseebUlhaq Malik

About

Quick Keys — Custom Browser Shortcuts for Chrome Supercharge your browsing with 50+ customizable actions — from tab management and navigation to media controls and page tweaks — all triggered by your own keyboard shortcuts. Create, edit, and run shortcuts instantly.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published