All notable changes to YouTube Keystrokes Blocker will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
5.0 - 2026-03-07
Browser ExtensionNative browser extension for Chrome, Edge, and Firefox (Manifest V3) with no Tampermonkey requiredToolbar PopupClick the extension icon to access a compact quick-settings panel from any YouTube tabFull Options PageDedicated full-page settings accessible from the extension menu, grouped by category with descriptions for every hotkeyCross-device SyncSettings sync automatically across devices viachrome.storage.sync(Chrome/Edge) and Firefox SyncLive Settings PropagationChanges saved in the popup or options page take effect in-page immediately viachrome.storage.onChanged— no tab reload neededBuild SystemPowerShell build pipeline (Build-Extension.ps1,Build-All.ps1) generates versioned.zipartifacts inrelease/for Chrome and FirefoxVersion SyncUpdate-Version.ps1now updates all 6 version files including both extension manifests
Critical — SPA NavigationHotkey button now correctly appears when navigating to a new YouTube video via in-page links (clicking a thumbnail), not just on hard reload. Root cause: the old button element persisted in the DOM during SPA navigation, causing the injection guard to falsely detect it as already injected and bail out.- Added
yt-navigate-startlistener that removes the button the moment navigation begins handlePageChange()also explicitly removes any stale button before scheduling re-injectionyt-page-data-updatedhandler now checksisInjectingto avoid redundant resets- MutationObserver callback is debounced (80 ms) to prevent flooding
tryInjectWithRetry()on rapid DOM mutations
- Added
npm run build:allbuilds Chrome + Firefox extensions and copies the userscript intorelease/npm run releasenow runs the full build before creating the git tag- Extension background service worker (
background.js) seeds default settings on first install only, preserving user settings on updates
4.5 - 2026-01-25
Playback ControlsAdded toggles for all major playback hotkeys: Play/Pause (k), Rewind (j), Fast Forward (l), Previous Video (Shift+p), Next Video (Shift+n)Advanced HotkeysComprehensive controls for subtitle/caption features: Captions (c), Text Opacity (o), Window Opacity (w), Font Size +/- (+/-)Spherical Video ControlsFull support for panoramic video gestures: Pan Up/Down/Left/Right (w/s/a/d), Zoom In/Out (+ on numpad or], - on numpad or[)UI/Playback ModesNew toggles for Theatre Mode (t), Miniplayer (i), Keyboard Shortcuts window (Shift+/)Expandable Settings"Show more controls" section with scrollable content area to prevent modal overflowIndependent Arrow ControlSplit arrow key controls into Left/Right and Up/Down for granular blocking while preserving Ctrl+Arrow combinationsKeyboard Shortcuts ButtonDirect access to YouTube's keyboard shortcuts help dialog from settings modal (works even when Shift+/ is disabled)Spacebar FixStrengthened spacebar detection with multiple event types (keydown/keypress/keyup) and multiple key identifiers
- Modal width increased to 420px to accommodate more settings without scrolling
- Default settings now include all 30+ supported hotkeys with independent toggles
- V key (Captions toggle) now has its own control separate from other features
- Settings seeded from fresh values on modal open (prevents stale checkboxes)
- Reset to Defaults now properly updates all toggles including advanced section
CriticalSpacebar blocking now works reliably across all keyboard eventsCriticalSettings persist correctly after save and modal reopenCriticalF/M key and all other single-key shortcuts properly gated by their toggle (not always-on)- Ctrl+Left/Right now independent from plain Left/Right arrow blocking
- Modal scrolling prevents content overflow on smaller screens
- Settings merge with defaults on load to ensure no missing keys
- Shift+/ keyboard shortcut help window accessible even when disabled
- Cleaner label formatting: brief description + key in parentheses (e.g., "Play/Pause (k)")
- Better visual hierarchy with scrollable advanced section
- Reset and Shortcuts buttons now clearly visible in footer
- Improved button styling with hover feedback
- Version number displayed in modal header
- All 30+ hotkeys verified for independent blocking
- Cross-browser compatibility maintained
- Settings persistence validated on reopen
- Modal overflow handled with scrollbar
- Keyboard event detection tested across keydown/keypress/keyup
4.4 - 2026-01-24
Timing FixImproved button injection reliability on first page loadEventsAdded proper YouTube SPA navigation event listeners (yt-navigate-finish,yt-page-data-updated)Retry LogicImplemented exponential backoff for DOM element detectionAutomationCreated PowerShell scripts for automated version managementCI/CDAdded GitHub Actions workflow for validationPackage ManagementAdded package.json with npm/uv script shortcuts
- Enhanced initialization logic to wait for specific DOM elements before injection
- Better handling of YouTube's dynamic content loading
- Replaced polling-based injection with event-driven approach
- Improved documentation with automation guides
CriticalFixed race condition causing button to not appear on first video load- Improved compatibility with YouTube's updated UI structure
- Button now appears reliably without requiring page refresh
- Version updates now automated across all files (userscript, manifest, README)
- New npm scripts:
version:patch,version:minor,version:major,release - Comprehensive automation documentation in
scripts/README.md
4.3 - 2026-01-23
SettingsSmart settings reloading with real-time synchronizationHotkey DetectionEnhanced spacebar detection for bothSpacecode and" "keyUI FeedbackVisual confirmation when settings are saved (green "Saved!" button)Multi-Selector InjectionFallback system for button injection across varying YouTube layoutsRetry LogicPeriodic injection attempts with graceful failure handlingMenu FallbackTampermonkey menu access to settings as backup option
- Settings now fetched fresh on every keystroke (not cached)
- Improved F/M key detection for case-insensitive handling
- Enhanced button injection with multiple selector strategies
- Better modal close behavior with 500ms delay for confirmation
- Settings not persisting correctly on first install (spacebar setting)
- Inconsistent F/M key detection across keyboard layouts
- Settings changes requiring page refresh
- Better compatibility with YouTube's varying DOM structures
- Updated manifest version to 3.0 (modern Chrome extension standard)
- Added explicit browser compatibility declarations
- Updated download/update URLs from Greasy Fork to raw GitHub
- Better distribution and faster update propagation
4.2 - 2026-01-20
- Increased modal text font sizes for better readability
- Header title: 16px → 18px
- Close button: 24px → 28px
- Row labels: now 15px (was inheriting default)
- Save button: 14px → 15px
- Enhanced save button styling
- Border radius: 2px → 8px (more rounded corners)
- Padding increased: 8px 16px → 10px 18px
- Removed fixed height constraint on modal content
- Eliminated scrollbar in favor of flexible height
- Modal now automatically expands to fit all options
- Better visual hierarchy with larger, clearer text
- Smoother button aesthetics with rounded corners
- More accessible interface with increased font sizes
- Cleaner modal appearance without scrollbars
4.1 - 2026-01-19
- Official Greasy Fork distribution channel (Script ID: 563265)
- Automatic daily update mechanism via Greasy Fork
- YouTube red color scheme (#ff0033) replacing previous blue
- Email contact field for direct support (hello@vkrishna04.me)
- Enhanced shields/badges in README with version, size, and platform info
- Quick links section in README
- Save button color from blue (#3ea6ff) to YouTube red (#ff0033)
- Toggle switch checked color to YouTube red (#ff0033)
- Save button hover color to darker red (#CC0000)
- @downloadURL now points to the actual userscript file
- @supportURL updated to GitHub issues page
- Update frequency clarified in documentation
- Better visibility with YouTube red branding
- Clearer update instructions for Greasy Fork users
- Version history documentation with detailed feature lists
- Status indicators showing production readiness
- Proper metadata for Greasy Fork distribution
- Daily automatic update checks enabled
- Update URLs verified and tested
4.0 - 2026-01-19
- Complete YouTube-native design system integration
- CSS variables for automatic light/dark mode detection
- Enhanced modal animations with cubic-bezier timing (150ms)
- Full-row clickable settings interface
- Proper z-index layering (2201-2202 modal layer)
- Keyboard accessibility with focus states
- Custom scrollbar styling
- Modal animation system from opacity to data-visible attributes
- Color variables using YouTube's design system
- Animation timing to professional standards
2.0 - 2026-01-19
- Modern settings modal with toggle switches
- Individual control for each hotkey group
- Beautiful dark-themed UI matching YouTube's interface
- Keyboard icon in player controls
- Support for 9 different hotkey categories
- Smooth animations and transitions
- Comprehensive documentation and guides
- GitHub Pages homepage with interactive demo
- FAQ section with common questions
- Installation guide with browser-specific instructions
- Usage guide with configuration examples
- Development guide for contributors
- Better visual design for settings modal
- Cleaner toggle switches instead of checkboxes
- Enhanced user experience with smooth animations
- Better accessibility with proper labels
- Optimized keyboard event handling
- Improved detection of typing contexts
- More efficient DOM updates
- Restructured UI with header, content, and footer sections
- New settings persistence system
- Updated default hotkey settings
- Modernized CSS with CSS variables
- New keyboard SVG icon
- Settings modal rendering issues
- Keyboard event propagation
- Toggle switch responsiveness
- Animation timing issues
1.0 - 2025-12-15
- Initial release
- Basic hotkey blocking functionality
- Settings modal for configuration
- Support for multiple keyboard shortcuts
- localStorage persistence for settings
- Menu command in userscript manager
- Greasemonkey API integration
- MutationObserver for YouTube SPA handling
- Comprehensive CSS styling
- Block/Enable Number Keys (0-9)
- Block/Enable Spacebar
- Block/Enable Arrow Keys
- Block/Enable Ctrl+Left/Right (Chapter navigation)
- Block/Enable F Key (Fullscreen)
- Block/Enable M Key (Mute)
- Block/Enable Shift+<> (Speed control)
- Block/Enable . and , (Frame skip)
- Smart text detection (won't block while typing)
- Settings saved to browser storage
- Hotkey profiles (save/load multiple configurations)
- Hotkey remapping functionality
- Video-type specific settings (exclude live streams, shorts, etc.)
- Channel whitelist/blacklist
- Custom hotkey combinations support
- Analytics dashboard (optional, privacy-respecting)
- Dark/Light theme toggle
- Export/Import settings to file
- Keyboard shortcut templates for common use cases
- Multi-language support
- Settings sync across devices (optional, encrypted)
- Browser extension version (not just userscript)
- Firefox Add-on official listing
- Chrome Web Store official listing
- Mobile browser support improvements
- Integration with other YouTube extensions
- Advanced logging for debugging
- Performance optimization for slower devices
- Major (X.0) - Breaking changes, significant features, major rewrites
- Minor (0.Y) - New features, improvements, non-breaking changes
| Version | Date | Status | Notes |
|---|---|---|---|
| 2.0 | 2026-01-19 | Latest | Modern UI, fine-grained control |
| 1.0 | 2025-12-15 | Archive | Initial release |
- None yet (project is new)
- None
- Default settings have changed (more hotkeys blocked by default)
- Settings key in localStorage changed from generic name to "hotkeySettings"
- UI completely redesigned (old settings won't carry over automatically)
Migration: Users upgrading from v1.0 will need to reconfigure their hotkey preferences.
- None
- Greasemonkey-only support (will require modern manager in v3.0)
When submitting a PR, please update the changelog:
- Add your changes under
[Unreleased]section - Use appropriate subsections (Added, Changed, Fixed, etc.)
- Reference GitHub issues if applicable (#issue-number)
- Keep entries concise and user-focused
Release tags follow format: v4.0, v4.5, etc.
To view a specific release:
git checkout tags/v4.5Last Updated: January 2026