Skip to content

volh/emacs-tabs-ff

Repository files navigation

Emacs Tab Switcher for Firefox

A Firefox extension that provides Emacs-like tab management with fuzzy search and quick switching. Features a centered overlay interface that appears on top of web pages.

✨ Features

Core Functionality

  • Overlay interface - Appears at configurable screen positions
  • Fuzzy search through all open tabs by title and URL with subtle highlighting
  • Recency-based sorting - most recently used tabs appear first
  • Smart fallback - works with or without Fuse.js library

Keyboard Navigation

  • Ctrl+. (default) - Toggle tab switcher
  • Ctrl+J/K - Navigate up/down (Emacs-style)
  • Arrow keys/Tab - Alternative navigation
  • Type to search - Filter tabs in real-time
  • Enter - Switch to selected tab
  • Escape - Close switcher

Customization

  • 7 position options - Top/center/bottom × left/center/right
  • 3 themes - Light (default), dark, system auto-detect
  • Custom keybindings - Record any key combination
  • Display limits - Control max items shown (5-50)
  • Search sensitivity - Adjust fuzzy matching threshold

🚀 Installation

Temporary Installation (Development)

  1. Download all files to a folder
  2. Open Firefox and navigate to about:debugging
  3. Click "This Firefox" in the sidebar
  4. Click "Load Temporary Add-on"
  5. Select the manifest.json file

Permanent Installation

Submit to Mozilla Add-ons store or self-sign the extension.

🎯 Usage

  1. Press Ctrl+. (or your custom shortcut) to open the overlay
  2. Type to filter tabs by title or URL
  3. Navigate with Ctrl+J/K or arrow keys
  4. Press Enter to switch to selected tab
  5. Press Escape to close

⚙️ Configuration

Access settings through Firefox Add-ons Manager → Extension Options:

Position Settings

  • Top/Center/Bottom × Left/Center/Right placement options
  • Default: Top Center

Keyboard Shortcuts

  • Browser shortcut: Ctrl+Period (configure in Firefox Add-ons Manager)
  • Page-level shortcut: Custom recordable key combinations

Appearance

  • Themes: Light, Dark, System (follows OS preference)
  • Max items: Limit displayed tabs (5-50)
  • Search sensitivity: Fuzzy matching threshold

Display Options

  • Show URLs: Toggle URL display under tab titles
  • Show window numbers: Display which window tabs belong to

🎨 Themes

  • Light - Clean, professional appearance with subtle grays
  • Dark - Easy on the eyes for low-light environments
  • System - Automatically follows your OS dark/light mode preference

🔧 Optional: Hide Firefox Tab Bar

To use this as your primary tab interface:

  1. Type about:config → Accept the risk
  2. Search for toolkit.legacyUserProfileCustomizations.stylesheets
  3. Set to true
  4. Go to about:support → Profile Folder → Open Folder
  5. Create chrome folder in profile directory
  6. Copy provided userChrome.css into chrome folder
  7. Restart Firefox

📁 Extension Files

  • manifest.json - Extension configuration and permissions
  • content.js/css - Overlay interface and functionality
  • background.js - Tab tracking and message handling
  • options.html/js/css - Settings interface
  • popup.html/js/css - Legacy popup interface
  • fuse.min.js - Fuzzy search library (fallback to simple search if fails)
  • userChrome.css - Optional Firefox tab bar hiding
  • icon.png - Extension icon

🚫 Limitations

The extension cannot run on Firefox internal pages (about:*, moz-extension://) due to browser security restrictions. This is normal behavior for all Firefox extensions.

🤝 Contributing

This extension is designed to be lightweight, fast, and focused on the core tab switching experience with Emacs-inspired keybindings.

About

emacs-style tab switching through fuzzy search

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors